(数据结构讲义)第3章堆栈和队列.doc

堆栈和队列 栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只有其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。栈(Stack):是限制仅在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。 栈的修改是按进出的原则进行的。因此,栈又称为后进先出(Last In First Out)的线性表,简称为 L表。InitStack(S) 构造一个空栈S。   StackEmpty(S) 判栈空。若S为空栈,则返回TRUE,否则返回FALSE。StackFull(S) 判栈满。若S为满栈,则返回TRUE,否则返回FALSE。该运算只适用于栈的顺序存储结构。   Push(S,x) 进栈。若栈S不满,则将元素x插入S的栈顶。   Pop(S) 退栈。若栈S非空,则将S的栈顶元素删去,并返回该元素。tackTop(S) 取栈顶元素。若栈S非空,则返回栈顶元素,但不改变栈的状态。顺序栈:即栈的顺序存储结构,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。顺序栈的类型定义:   栈顶指针和栈中元素之间的关系:上溢:当栈满时再做进栈运算所产生的空间溢出。(出错状态)下溢:当栈空时再做退栈运算所产生的溢出。(正常现象,程序控制转移的条件) 在顺序栈上实现栈的六种基本运算“Stack overflow”);

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档