(39)4.29数据结构(栈,队列和数组)栈

ops/2024/9/23 21:18:23/

#include<stdlib.h>
#include<stdio.h>
#define MaxSize 10
#define Elemtype int

1.栈的基本概念

2.栈的基本操作

typedef struct
{
    Elemtype data[MaxSize];
    int top;

}Sqstack;
//初始化栈
void InitStack(Sqstack& S)
{
    S.top = -1;   //初始化栈顶指针
}
bool StackEmpty(Sqstack S)
{
    if (S.top == -1)
        return true;
    else
        return false;
}
void testStack()
{
    Sqstack S;   //声明一个顺序栈(分配空间)
    InitStack(S);
    //。。。。后续操作
}
//新元素进栈
bool Push(Sqstack& S, Elemtype x)
{
    if (S.top == MaxSize - 1)
        return false;
    //S.top = S.top + 1;
    //S.data[S.top] = x;
    //也可以写成

    S.data[++S.top] = x;
}
//出栈操作
bool Push(Sqstack& S, Elemtype &x)
{
    if (S.top == - 1)
        return false;
    //x = S.data[S.top] ;
    //S.top = S.top - 1;
    //也可以写成

    x = S.data[S.top--];  //先出栈,指针再减一
}
//读栈操作
bool GetTop(Sqstack S, Elemtype& x)
{
    if (S.top == -1)
        return false;
    x = S.data[S.top]; //x记录栈顶元素
    return true;
}
//****做题的时候一定要注意top指针指向的位置,看看是指向栈顶元素还是指向栈顶元素后面一个位置****/


//共享栈
typedef struct
{
    Elemtype data[MaxSize]; //静态数组存放栈中元素
    int top0;               //0号栈栈顶指针
    int top1;               //1号栈栈顶指针
}Shstack;
//初始化栈
void InitStack(Shstack& S)
{
    S.top0= -1;   //初始化栈顶指针
    S.top1 = MaxSize;
}

3.链栈的定义

//链栈
typedef struct Linknode
{
    Elemtype data; //数据域
    struct Linknode* next;
}*Listack;
//进栈和出栈都只能在栈顶一端进行(链头作为栈顶)


http://www.ppmy.cn/ops/33446.html

相关文章

某度假村薪酬体系优化项目成功案例纪实

——增强薪酬弹性、重塑薪酬标准、释放薪酬增长潜力 【客户行业】文旅行业、酒店行业、文旅集团、度假村 【问题类型】薪酬体系 【客户背景】 某度假村是一家集住宿、娱乐、健身等服务为一体的综合服务场所&#xff0c;度假村内部环境优美、设施齐全&#xff0c;备有休闲中…

linux的压缩与备份

一、打包 格式&#xff1a;tar -参数 <打包文件名> <打包的目标> 作用&#xff1a;将文件或者目录打包 重要参数&#xff1a;-f 使用归档文件&#xff0c;一定要加上这个参数 -c 新建打包文件 -x 解包文件 -t 可以不用解包就能查看包文件内容 -v 打包和解包时显…

Ubuntu20.04 [Ros Noetic]版本——在catkin_make编译时出现报错的解决方案

今天在新的笔记本电脑上进行catkin_make的编译过程中遇到了报错&#xff0c;这个报错在之前也遇到过&#xff0c;但是&#xff0c;我却忘了怎么解决。很是头痛&#xff01; 经过多篇博客的查询&#xff0c;特此解决了这个编译报错的问题&#xff0c;于此特地记录&#xff01;&…

OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA前言OceanBase 数据更新架构OceanBase 平台产品 - 迁移评估工具 OMA兼容性评估性能评估导出 OceanBase 数据库对象和 SQL 语句OceanBase 分布式数据库【信创/国产…

简要说说软分叉和硬分叉。

前言 一、软分叉 二、硬分叉 三、用途 总结 前言 软分叉和硬分叉是区块链技术中的两个重要概念&#xff0c;它们通常与加密货币的网络升级有关。下面我将分别解释这两个概念&#xff0c;并提供一些例子来帮助理解。下面是方便理解软分叉和硬分叉的图 一、软分叉 软分叉是一…

liunx运维实战-----3 shell变量的核心基础知识和实践

1定义环境变量并赋值的方法 1 export 变量名值 2 source /etc/profile 3 echo $变量名 4 env | grep 变量名 2 环境变量也叫全局变量 3特殊情况&#xff1a;sed和grep没有问题 因为 awk取用shell变量时 和之前的定义是相反的 在awk取用shell变量时 我们更好的是先用echo加符号…

leetCode70. 爬楼梯

leetCode70. 爬楼梯 题目思路&#xff1a; 代码 class Solution { public:int climbStairs(int n) {int a 1, b 1;n n - 1;while(n--){int c a b;a b;b c;}return b;} };

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 4

第十三章 车联网 数字化设备正变得越来越普遍并且相互联系。这些设备向数字生态系统智能部分的演进创造了迄今为止尚未解决安全问题的新颖应用。一个特定的例子是车辆&#xff0c;随着车辆从简单的交通方式发展到具有新的感知和通讯功能的智能实体&#xff0c;就成为智能城市的…