栈
来源:互联网 发布:pc蛋蛋杀组合完美算法 编辑:程序博客网 时间:2024/05/19 09:12
一、顺序栈
1 . 栈空 top = -1
2 . 栈满 top = StackSize - 1 (StackSize 为数组长度)
二 、两栈共享空间
原因:为了避免空间的浪费
①. 栈2空 top = StackSize;
②. 栈满 即 栈1的栈顶元素和栈2的栈顶元素位于数组的相邻位置top1=top2-1(或top2 = top1+1)
③ 入栈Push
template<class T>void Push(int i,T x){if(top1==top2-1)throw "上溢";if(i == 1)data[++top1]=x;if(i == 2)data[--top2]=x;}④.出栈Pop
template<class T>void Pop(int i){if(i == 1){if(top1 == -1)throw "下溢";return data[top1--];}if(i == 2){if(top2 == StackSize)throw "下溢";return data[top2++];}}三、链栈
1. 入栈 Push
template<class T>void Push(T x){s = new Node;s->data = x;s->next = top;top = s;}2.出栈Pop
template<class T>void Pop(){if(top == NULL)throw "下溢";x = top->data;p = top;top=top->next;delete p;return x;}3 .栈空 top == NULL;
0 0
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 每天一个常用的linux命令(13)--locate
- 64位Win7系统下配置VC/VS调用32位matlab
- Codeforces Round #376 (Div. 2) E
- Linux文件操作
- bzoj 4326: NOIP2015 运输计划 (二分答案+树链剖分+树状数组)
- 栈
- 研一自学unity的心路历程
- MySQL优化之时间类型的选择
- codevs 2292 图灵机游戏(BFS)
- 欢迎使用CSDN-markdown编辑器
- 实施架构一个Android项目
- 进程的相关概念
- git 学习之二
- FragmentTabHost+Fragment+ViewPager实现内外层嵌套