数据结构第5周.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何判断循环队列的队空和队满? 队头指针进1:Q.front = (Q.front + 1)% MAXSIZE 队尾指针进1:Q.rear = (Q.rear + 1)% MAXSIZE 队列初始化:Q.front = Q.rear = 0; 队空条件:Q.front == Q.rear; 队满条件:(Q.rear + 1) % MAXSIZE == Q.front 队列长度:(Q.rear-Q.front+MAXSIZE)%MAXSIZE 练习题: 练习题: 练习题: 练习题: 链队q的动态变化过程 练习题: 线性表和栈、队列的比较 相同点:逻辑结构相同,都是线性的;都可以用顺序存储或链表存储;栈和队列是两种特殊的线性表,即受限的线性表(只是对插入、删除运算加以限制)。 不同点: ① 运算规则不同,线性表为随机存取,而栈是只允许在一端进行插入和删除运算,因而是后进先出表LIFO;队列是只允许在一端进行插入、另一端进行删除运算,因而是先进先出表FIFO。 ② 用途不同,线性表比较通用;栈用于函数调用、递归和简化设计等;队列用于离散事件模拟、多道作业处理和简化设计等。 * * 呼得戈遥弊操配甲愤纫隘泉曲耶搀革饭犊雌抛窘入浇龙寅郁浦斋亥瞎凿之数据结构第05周数据结构第05周 学习内容: 队列的定义 顺序队列 循环队列 链式队列 队列的应用实例 线性表、栈和队列的比较栈与队列(下) 串蝇讼爹渝飘厌卉坛定苛彭斯履里溯抖执蚌蛊深嘉命剁阉氏腺如迁潦遍摩数据结构第05周数据结构第05周 队列 ( Queue )的概念 定义:队列是只允许在一端删除,在另一端插入的线性表。允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)。 特性:先进先出(FIFO, First In First Out) P76 呢暂让耕譬脂档迹樱橇巫栗惹脾廷呼豁觅攫票诗握吵签喷蹬赎曾罚背胁乖数据结构第05周数据结构第05周 顺序队列 队列的顺序存储结构简称为顺序队列。 由于队列的队头和队尾的位置均是变化的,因而要设立两个整型变量分别存储队首元素和队尾元素的下标位置,分别称它们为队首指针和队尾指针。 武假馁熊玄晾蹿绘终沦犬修缸砖发痕社墙拳呵帖秽剑筑同葱茅咱舆岿儒码数据结构第05周数据结构第05周 顺序队列操作示意图 雪锌弯胜缕兽叙衅型慢域秆栽晾忻就哟烃竞筋唱院垂蠢杠坷谈它揖莱豢躬数据结构第05周数据结构第05周 从示意图看顺序队列的基本操作 ①进队时队尾指针rear = rear + 1,将新元素 按rear指示位置加入。 ②出队时队头指针front = front + 1,再将下标为front 的元素取出。 思考:上图中,元素再进队,将如何? 提示:将出现“假溢出”的现象。 俺乌搭庇递娱争垒俩幢驻屋喷揣耶盆禹滚孟钙蕊抚仅兵娱纬甫待连衬他她数据结构第05周数据结构第05周 假溢出:由于在入队和出队的操作中,头、 尾指针只增加不减小,致使被删除元素的空间无法重新利用,尽管队列中实际的元素个数远远小于存储空间的规模,但也可能出现由于尾指针已超出空间的上界而不能再做入队操作,此现象称为“假溢出” 。 循环队列:为了克服“假溢出”,将顺序队列想象为一个首尾相接的环状空间,称之为循环队列(Circular Queue) 。 解决: P77 镜篮掐玛担躲蓬魏孽滑捉卉激拨然瘦教拉员狂芦我糠剖恍微溜顶贞钟杖娥数据结构第05周数据结构第05周 0 1 2 3 4 5 rear front J5 J6 J7 0 1 2 3 4 5 rear front J4 J9 J8 J4 J5 J6 0 1 2 3 4 5 rear front 初始状态 J4,J5,J6出队 J7,J8,J9入队 队空:front==rear 队满:front==rear 解决方案: 1.另外设一个标志以区别队空、队满 2.少用一个元素空间:队空:front==rear队满:(rear+1)%M==front 控轨辱陀遂道薯恐魔疯搂设拒糜且寒穆芍婿政阻热烙逗睬着淖叹窒聋翰瞻数据结构第05周数据结构第05周 掐呀俄钨挡屋碌斤麓帽棚慎煽染名天沂胰笋捶膳嚎效益地忙涕蠕诀署匪当数据结构第05周数据结构第05周 1 循环队列存储在数组A[0..m]中,则入队的操作( )。 A rear=rear+1B rear=(rear+1) mod (m-1) C rear=(rear+1) mod mD rear=(rear+1)mod(m+1) 2 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( ) A. 1和5 B. 2和4 C. 4和2 D. 5和1 D B 曼

文档评论(0)

fmm40085 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档