栈的定义
- 栈:一种限定仅在表尾进行插入和删除操作的线性表。
- 栈顶:线性表上被允许插入和删除的一端。(表尾)
- 栈底:线性表上不允许插入和删除的一端。(栈底是固定的,最先进栈的只能在栈底)
- LIFO:栈又称作后进先出的线性表,简称LIFO结构。
- 进栈:栈的插入操作,也叫入栈,压栈。
- 出栈:栈的删除操作,也叫弹栈。
- 多个数据元素依次进栈,出栈次序并不唯一。
栈的抽象数据类型
Operation
- InitStack(*S):初始化,建立一个空栈S。
- DestroyStack(*S):清除一个栈。
- ClearStack(*S):清空一个栈。
- StackEmpty(S):若栈为空,返回true。
- GetTop(S,*e):若存在栈S且非空,用e返回S的栈顶元素。
- Push(*S,e):若存在栈S,插入e到栈顶。
- Pop(*S,*e):删除S的栈顶元素,返回给e。
- StackLength(S):返回栈S的元素个数。
栈的顺序存储结构
- 顺序栈:以数组中下标为0的元素作为栈底。当top=-1时,为空栈。
- 栈的结构:
typedef int SElemType; //假设SElemType类