第3章栈与队列(已修改).pptVIP

  • 1
  • 0
  • 约8.32千字
  • 约 50页
  • 2018-05-18 发布于河南
  • 举报
第3章栈与队列(已修改)

第3章 栈和队列 栈和队列被称为操作受限的线性表。本章介绍栈和队列的逻辑结构和存储结构,以及栈和队列的基本运算以及实现算法。 只允许在线性表的一端进行插入和删除操作的线性表 允许插入和删除的一端称为栈顶 (top),另一端称 为栈底(bottom) 特点 后进先出 (LIFO) 栈的基本操作 INITSTACK(s) 构造一个空栈s。 STACKEMPTY (s) 判断s是否为空栈,若s为空栈,返回1,否则返回0。 PUSH(s,x) 进栈操作。在栈s顶部插入一个新的元素x。 POP(s,x) 退栈操作,若s非空,删除s中的栈顶元素,并返回该元素。 栈的表示和实现 由于栈是运算受限的线性表,因此线性表的存储结构对栈也适应。 1.顺序栈 栈的顺序存储结构—顺序栈,可以将栈底位置设置在数组的低地址端点;栈顶位置是随着进栈和退栈操作而变化的,故需用一个整型变量top,指明当前栈顶的位置,同样将data数组和top封装在一个结构中,顺序栈的类型描述如下: 入栈与出栈 2.顺序栈的基本运算算法 (1)初始化栈 void INITSTACK(seqstack *s) {/*创建一个空栈由指针S指向*/ s-top= -1; } 思考: void INITSTACK(seqstack s) { s.top= -1; } 哪

文档评论(0)

1亿VIP精品文档

相关文档