1、栈的抽象数据类型定义
ADT Stack{
数据对象:
D={ ai | ai∈ElemSet,i=1,2,3,...,n。n>=0}
数据关系:
R1={ <ai-ai>| ai-1 and ai∈D,i=2,...,n}
约定an端为栈顶,a1端为栈底
基本操作:初始化栈、进栈、出栈、取栈顶元素等。
}ADT Stack
- InitStack(&S) 初始化操作
- 操作结果:构造一个空栈S
- DestroyStack(&S) 销毁栈操作
- 初始条件:栈S已存在
- 操作结果:栈S被销毁
- StackEmpty(&S) 判断S是否为空
- 初始条件:栈S已存在
- 操作结果:若栈S为空栈,则返回TRUE
否则FALSE
- StackLength(&S) 求栈的长度
- 初始条件:栈S已存在
- 操作结果:返回S的元素个数,即栈的长度。
- GetTop(S,&e) 取栈顶元素
- 初始条件:栈S已存在且非空
- 操作结果:用e返回S的栈顶元素
- DestroyStack(&S) 栈置空操作
- 初始条件:栈S已存在
- 操作结果:栈S清为空栈
- Push(&S,e) 入栈操作
- 初始条件:栈S已存在
- 操作结果:插入元素e为新的栈顶元素。
- Pop(&S,&e) 出栈操作
- 初始条件:栈S已存在且非空
- 操作结果:删除S的栈顶元素an,并用e返回其值