参考资料:《数据结构(C语言版)严蔚敏著》
版权说明:未经作者允许,禁止转载。如引用本文内容,需标明作者及出处。如本文侵犯了您的权益,请联系我删除并致歉。
文章说明:如文章中出现错误,请联系我更改。如您对文章的内容有任何疑问,也欢迎来与我讨论。
本文正在施工中...请稍等...
栈的介绍
基本概念
1、栈:栈是一种特殊的线性表,它只允许表尾端进行插入或删除操作。
2、栈顶:栈允许进行插入或删除操作的那一端,也即表尾端。
3、栈底:栈不允许进行插入或删除操作的那一端,也即表头端。
4、空栈:不含元素的栈。
5、栈的特点:后进先出,即最后进入栈中的元素,总是最先从栈中移出。
抽象数据类型
ADT Stack{
数据对象:参考《数据结构(C语言描述)严蔚敏著》
数据关系:参考《数据结构(C语言描述)严蔚敏著》
基本操作:
InitStack(&S)
操作结果:构造一个栈S。
DestroyStack(&S)
初始条件:栈S已存在。
操作结果:栈S被销毁。
ClearStack(&S)
初始条件:栈S已存在。
操作结果:将Q清为空栈。
StackEmpty(S)
初始条件:栈S已存在。
操作结果:若栈S为空栈,则返回TRUE,否则返回FALSE。
StackLength(S)
初始条件:栈S已存在。
操作结果:返回S的元素个数,即栈的长度。
GetTop(S,&e)
初始条件:栈S已存在且非空。
操作结果:用e返回S的栈顶元素。
Push(&S,e)
初始条件:栈S已存在。
操作结果:插入元素e为新的栈顶元素。
Pop(&S,&e)
初始条件:栈S已存在且非空。
操作结果:删除S的栈顶元素,并用e返回其值。
StackTraverse(S,visit())
初始条件:栈S已存在且非空。
操作结果:从栈底到栈顶依次对S的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。
}ADT Stack