栈的基本概念
1,栈的定义
栈是只允许在一段进行插入或删除操作的线性表
栈顶(top):线性表允许进行插入删除的那一端
栈底(bottom):固定的,不允许进行插入和删除的另一端。
空栈:不含任何元素的空表
2,栈的基本操作
InitStack(&S) :初始化一个空栈S
StackEmpty(&S) :判断一个栈是否为空,若栈S为空则返回true,否则返回false。
Push(&S,x) :进栈,若栈S未满,则将x加入使之成为新栈顶。
Pop(&S,&x) : 出栈,若栈S非空,则弹出栈顶元素,并用x返回栈顶元素。
DestroyStack(&S) : 销毁栈,并释放栈S占用的存储空间(”&“表示引用调用)
3,栈的函数实现
栈顶指针:S.top 初始化 s.top = -1;
栈顶元素:S.data[S.top]
进栈操作:栈不满时,栈顶指针先加1,再对栈顶元素进行赋值
出栈操作:栈非空时,先取出栈顶元素值,再将栈顶指针减1
栈空条件:S.top == -1;
栈满条件: S.top == MaxSize -1;
栈长 &