栈的定义
栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端成为栈顶,另一端成为栈底,不包含任何数据元素的栈成为空栈。
如图所示:
当要删除元素的时候只能删除a5.换言之,在任何时候出栈的元素都只能是栈顶元素。即最后入栈者最先出栈。所以栈中元素除了具有线性关系外,还具有后进先出的特性
栈的抽象数据类型定义
虽然对插入和删除操作的位置限制减少了栈操作的灵活性,但同时也使得栈的操作更有效更容易实现。其抽象数据类型定义为:
ADT Stack
Data
栈中元素具有相同类型及后进先出的特性
Operation
InitStack
功能:初始化一个栈
DestroyStack
前置:栈存在
功能:销毁栈,释放栈空间
Push
前置:栈存在
功能:入栈操作
Pop
前置:栈存在
功能:出栈操作,删除栈顶元素,返回被删元素
GetPop
前置:栈存在
功能:读取栈顶元素
Empty
前置:栈存在
功能:判断栈是为空,返回1,否则返回0