堆栈(stack):具有一定操作约束的线性表。只在一端(栈顶)做插入、删除。插入数据叫入栈(push)、删除数据叫出栈(pop)。
堆栈很重要的特点:后入先出(LIFO)
现实生活中的堆栈:
一叠碗,后放的先拿出来用,(后入先出)
堆栈抽象数据类型描述
类型名称:堆栈(stack)
数据对象集:有0个或多个元素的有穷线性表。
操作集:长度为MaxSize的堆栈S∈stack,堆栈元素item∈ElementType
堆栈基本操作函数
生成堆栈,最大长度为MaxSize
1 |
Stack CreateStack(int MaxSize) |
判断堆栈S是否已满
1 |
int IsFull(Stack S, int MaxSize); |
将元素item压入堆栈
1 |
void Push(Stack S, ElementType item); |
判断堆栈S是否为空
1 |
int IsEmpty(Stack S); |
删除并返回栈顶元素
1 |
ElementType Pop(Stack S); |
堆栈操作具体图示: