来源:互联网 发布: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
原创粉丝点击