栈和队列是两种特殊的线性表它们的逻辑结构和线性表相同只有其运算规则较线性表有更多的限制故又称它们为运算受限的线性表 栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表通常称插入删除的这一端为栈顶(Top)另一端称为栈底(Bottom) 栈的修改是按后进后出的原则进行的因此栈又称为后进先出(Last In First Out)的线性表简称为 LIFO表 栈的基本运算 InitStack(S) 构造一个空栈S StackEmpty(S) 判栈空若S为空栈则返回TRUE否则返回FALSE StackFull(S) 判栈满若S为满栈则返回TRUE否则返回FALSE该运算只适用于栈的顺序存储结构 Push(Sx) 进栈若栈S不满则将元素x插入S的栈顶 Pop(S) 退栈若栈S非空则将S的栈顶元素删去并返回该元素 StackTop(S) 取栈顶元素若栈S非空则返回栈顶元素但不改变栈的状态 |