c语言中顺序栈的实现采用的是数组。
顺序栈的4个要素:
栈空条件:top=-1
栈满条件:top=MaxSize-1
进栈e操作:top++; 将e放在top处
退栈操作:从top处取出元素e; top–;
定义
在顺序栈中设定一个随时指向栈顶元素的变量(一般命名为 top ),当 top 的值为 -1 时,说明数组中没有数据,即栈中没有数据元素,为“空栈”;只要数据元素进栈,top 就加 1 ;数据元素出栈, top 就减 1 。
初始化
栈的初始化算法步骤:
1.栈底及栈顶的索引都是0.
2.栈的初始长度为0.
入栈
初始条件:栈存在;
操作结果:将值为item的新的数据元素添加到栈顶,栈发生变化。
压栈的算法步骤
1.判断栈的长度是否大于栈的最大容量。
2.栈顶索引上移加1.
3.将栈元素压入到栈中。
4.栈的长度加1.
时间复杂度为:T(o) = 1;
出栈
初始条件:栈存在且不为空;
操作结果:将栈顶元素从栈中取出,栈发生变化。
出栈的算法步骤
1.判断栈中是否存在元素。
2.输出栈元素。
3.栈顶索引下移减1.
4.栈的长度减1.
时间复杂度为:T(o) = 1;
读栈顶
初始条件:栈表存在且不为空;
操作结果:返回栈顶元素的值,栈不发生变化。
共享栈
总结
程序实例(来源网络)
https://www.cnblogs.com/helloworldcode/p/6747736.html
https://www.cnblogs.com/adamjwh/p/6476384.html