- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(第六讲).ppt
4、队列中元素入队和出队及指针变化情况 绍兴文理学院 一、教学目的: 明确数据结构课程在本专业知识结构中的地 位,作用。课程的特点,教学的要求,方法。明确数据结构所研究的问题以及有关基本概念。 二、教学重点:数据的逻辑结构、存储结构及其算法,数据结构的有关概念,抽象数据类型,学习数据结构的要求和方法。 三、教学难点:顺序存储结构,链式存储结构,抽象数据类型及数据结构的有关概念。 * (第六讲) 绍兴文理学院 计算机系计算机应用教研室 AAA BBBB 怎样让数据 排队? AAA BBBB 第3章 栈和队列(2) 一、教学目的:明确队列的有关概念;掌握队列的逻辑结构和存储结构,掌握队列的基本操作;掌握队列的初步应用。 二、教学重点:队列的有关概念;队列的逻辑结构和存储结构,队列的基本操作;队列的初步应用。 三、教学难点:循环队列的有关概念和操作;队列的初步应用。算法实现能力的训练。 四、教学过程: AAA BBBB §3.4 队列(Queue) §3.4.1 队列的类型定义 1、定义 队列是只允许在一端删除,在另一端插入元素的线性表。 允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)。 2、特性 先进先出(FIFO, First In First Out) front rear 入队列 a1 a2 a3 an 出队列 第一个入队的元素在队头, 最后一个入队的元素在队尾, 第一个出队的元素为队头元素, 最后一个出队的元素为队尾元素。 TKS * * AAA BBBB 入队操作 EnQueue(Q,e) 初始条件:队列Q已存在。 操作结果:将元素e插入到Q的队尾。 a1 a2 an … … 3、队列的两个重要操作 a2 an … … a1 出队操作 DeQueue(Q,e) 初始条件:Q为非空队列。 操作结果:删除Q的队头元素,并用e返回其值。 e TKS * * AAA BBBB §3.4.2 循环队列(Circular Queue) —— 队列的顺序表示和实现 1、概念:顺序存储的队列称为顺序队。 即用一组地址连续的存储单元依次存放从队列头到队列尾的元素。 因为队列的队头和队尾都是活动的,因此,除了队列的数据区外还有队头、队尾两个指针(标)。 2、结构定义 define MAXSIZE 100 // 队列的最大容量 struct sequeue { qelemtype *base; // 队列的存储空间(首地址) int front; // 队首指针(下标) int rear; // 队尾指针(下标) }; TKS * * AAA BBBB 3、约定和初始结构操作 约定:初始化创建空队列时,令front=rear=0,每当插入新的队尾元素时,“尾指针rear增1”;每当删除队头元素时,“头指针front增1”。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队尾元素的下一个位置。 初始结构操作: ◆ 定义一个指向队列的变量:sequeue q; ◆ 队列的数据区:q-base[0] ~ q-base[MAXSIZE-1] ◆ 队首指针(下标):q-front ◆ 队尾指针(下标):q-rear TKS * * AAA BBBB J1 J2 rear front (a)空队列 (b)J1,J2相 继入队列 (c)J1出队 (d)J3,J4和J5相继入队之后,J2出队 又有J6入队, 怎么办? front J5 J4 J3 rear 0 1 2 3 4 rear front J2 rear front 此时,队尾指针已经移到了最后,再有元素入队就会出现溢出,而事实上此时队中并未真的“满员”,这种现象为“假溢出”,这是由于“队尾入队头出”这种受限制。 TKS * * AAA BBBB 5、构造循环队列 解决假溢出的方法之一是将队列的数据区base[0..MAXSIZE-1]看成头尾相接的循环结构,头尾指针的关系不变,队尾指针加1时从maxSize-1直接进到0将其称为“循环队列”。 front rear J6 J4 J5 3 1 2 4 0 5 J7 rear rear 5 4 0 3 1 2 front J6 J7 J8 J9 J4 J5 队满 front rear 5 4 0 3 1 2 队空 队空、队满 都有front=rear 如何判断循环队列
您可能关注的文档
最近下载
- 部编版小学道德与法治四年级上册教案(全册)(最全).doc
- ISO90012015 ISO220002018 双体系内审检查表.xls VIP
- 钢支撑、钢拉条.docx VIP
- 雅马哈R3使用说明书.pdf VIP
- 灵活用工模式下的招聘战略.pptx VIP
- ISO220002018食品安全管理体系内审检查表.pdf VIP
- 四川建筑职业技术学院高等数学(一)复习答案学生版.doc VIP
- 电商孵化园运营方案.pdf VIP
- 初中物理竞赛试题精选精编第07讲物态变化(含答案与解析).docx VIP
- ISO22000-2018 食品安全管理体系 食品链中各类组织的要求(可编辑可复制).docx VIP
文档评论(0)