数据结构 — 栈

1.定义栈:

stack <char> s;

2.栈的基本函数:

  1. push( )  将元素压入栈顶;
  2. top( ) 获得的栈顶元素;
  3. pop( ) 移除栈顶元素,若想访问栈下的元素,必须先移除栈顶;
  4. empty( ) 用来检测栈是否为空,若是空,返回的是true否则false;

3.栈的基本操作:

1)InitStack(&S):初始化空栈S;

2)StackEmpty(S):判断一个栈是否为空;

3)Push(&S,x):进栈,若栈未满,则将x加入使之成为新栈顶;

4)Pop(&S,&x):出栈,若栈非空,则将栈顶元素,并用x返回;

5)GetTop(S,&x):读栈顶元素,若栈顶元素非空,则用x返回栈顶元素;

6)DestroyStack(&S):销毁栈,并释放栈S占用的存储空间;

4.栈的顺序存储结构:

采用顺序存储的栈称为顺序栈,它是利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时附设一个指针(top)指示当前栈顶的位置。

栈的顺序存储类型可以用以下表示:

#define MAXSIZE 100         //栈中元素的最大个数
typedef struct {
    ElemType data[MAXSIZE]; //存放栈中元素
    int top;                //栈顶指针
} SqStack;

栈顶指针:S.top,初始时设置S.top = -1;栈顶元素:S.data[S.top];

进栈操作:栈不满时,栈指针加1,再送值到栈顶元素;

出栈操作:栈非空时,先去栈顶元素值,再将栈顶指针减1;

栈空条件:S.top == -1;

栈满条件:S.top == MAXSIZE - 1;

栈长:S.top + 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值