华师本科生数据结构课件 第4章 栈与队列
138页1、引例,餐馆中一叠一叠的盘子:如果它们是按 1,2,n 的次序往上叠的,那么使用时候的次序应是什么样的?,必然是依从上往下的次序,即n,2,1。它们遵循的是后进先出的规律,这正是本章要讨论的栈的结构特点。,是排队。在计算机程序中,模拟排队的数据结构是队列。,栈和队列是两种特殊的线性表,是操作受限的线性表,称限定性数据结构。,在日常生活中,为了维持正常的社会秩序而出现的常 见现象是什么?,第4章 栈和队列,4.1 栈 4.2 栈的应用举例 4.3 队列 4.4 队列应用举例,【学习目标】,掌握栈和队列这两种抽象数据类型的特点,并能在相应的应用问题中正确选用它们。 熟练掌握栈类型的两种实现方法。 熟练掌握循环队列和链队列的基本操作实现算法。 理解递归算法执行过程中栈的状态变化过程。,【重点和难点】,栈和队列是在程序设计中被广泛使用的两种线性数据结构,本章的学习重点在于掌握这两种结构的特点,以便能在应用问题中正确使用。,重点:栈和队列的基本特征,表示与实现 难点:递归、循环队列 算法:栈和队列的实现及其应用,顺序栈、链栈、递归、循环队列、链队列,【知识点】,【学习指南】,本章主要是学习如何在求
2、解应用问题中适当地应用栈和队列,栈和队列在两种存储结构中的实现都不难,但应该对它们了如指掌,特别要注意它们的基本操作实现时的一些特殊情况,如栈满和栈空、队满和队空的条件以及它们的描述方法。,本章要求必须完成的算法设计题为: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.9, 4.11, 4.12,4.1 栈,是限定仅在表尾进行插入或删除操作的线性表。 允许插入,删除的一端称为栈顶(top),另一端称为栈底(bottom),top,bottom,进栈,出栈,an . . . . a1,基本操作:,后进先出(LIFO),定义:,栈 特殊的线性表:操作受限的线性表,逻辑特征:,创建一个空栈; 判断栈是否为空栈; 判断栈是否为满; 往栈中插入(或称推入)一个元素; 从栈中删除(或称弹出)一个元素; 求栈顶元素的值。 访问栈中每个元素,栈和队列是两种常用的数据类型,栈和队列是限定插入和删除只能在表的“端点”进行的线性表。,线性表 栈 队列 Insert(L, i, x) Insert(S, n+1, x)Insert(Q, n+1, x) 1in+1 Delete(L, i)
3、Delete(S, n) Delete(Q, 1) 1in,一般线性表 堆栈 逻辑结构:一对一 逻辑结构:一对一 存储结构:顺序表、链表 存储结构:顺序栈、链栈 运算规则:随机存取 运算规则:后进先出(LIFO),1. 定义,与线性表相同,仍为一对一关系。,用顺序栈或链栈存储均可,顺序栈更常见,只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则。,关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同。 基本操作有入栈、出栈、读栈顶元素值、建栈、判栈满、判栈空等。,限定只能在表的一端进行插入和删除运算的线性表(只能在栈顶操作),4.1.1 栈的特点和操作,例如: 栈 s = ( a1 , a2, a3, , an-1, an ),an 称为栈顶元素,插入元素到栈顶(即表尾)的操作,称为入栈。 从栈顶(即表尾)删除最后一个元素的操作,称为出栈。,强调:插入和删除都只能在表的一端(栈顶)进行!,a1 称为栈底元素,栈是仅在表尾进行插入、删除操作的线性表。 表尾(即 an 端)称为栈顶 top ; 表头(即 a1 端)称为栈底base,“进” 压入=PUS
4、H(x) “出” 弹出=POP ( y ),4.1.1 栈的特点和操作,栈的基本操作,InitStack(,顺序栈中的PUSH函数 status Push( ElemType x ) if ( topM ) 上溢 else vtop+ = x; ,Push( B );,Push( C );,Push( D );,低地址L,Push( A );,高地址M,B,C,D,出栈操作: 例如从栈中取出B(注意要遵循“后进先出” 原则),核心语句: Pop ( ); Pop ( ); Printf( Pop () );,顺序栈中的POP函数 status Pop( ) if ( top=L ) 下溢 else y = v-top; return( y ); ,若入栈动作使地址向高端增长,称为“向上生成”的栈; 若入栈动作使地址向低端增长,称为“向下生成”的栈; 对于向上生成的栈 入栈口诀:堆栈指针top先压后加(vtop+=x); 出栈口诀:堆栈指针top先减后弹(y=v-top) 。,栈不存在的条件:base=NULL; 栈为空 的条件 : base=top; 栈满的条件 : top-base=
《华师本科生数据结构课件 第4章 栈与队列》由会员小****分享,可在线阅读,更多相关《华师本科生数据结构课件 第4章 栈与队列》请在金锄头文库上搜索。
初中英语考试常用的语法知识
水泵测试50题(初级工)含答案
钢筋、模板、混凝土质量标准控制措施
高中英语考试应用文写作(书信类)模板
企业安全管理需遵循的5大原则
初中复习资料:英语中的构词法
中考英语定语从句精讲+精练+答案
高中英语必须记住的300个核心词
设备润滑的规程
水泥物理力学性能试验试题(附答案)
安全培训常用的故事整理
公司员工安全生产管理制度
精馏操作基础知识问答及答案
初中英语“三大从句”超全总结
高中英语必背优秀范文30篇
初中英语考试必须要吃透的130道动词填空题
施工现场雨季防汛专项施工应急预案
工会组织在安全生产工作中的职责和作用
初中英语写作所有话题的优秀作文22篇
不锈钢钢坯加热注意要点
2023-12-22 55页
2023-12-22 50页
2023-12-22 50页
2023-12-22 64页
2023-12-22 50页
2023-12-22 55页
2023-12-22 51页
2023-12-22 50页
2023-12-22 50页
2023-12-19 24页