- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.4 队列 2.循环队列 是顺序分配存储结构实现的队列。顺序队列除了一个一维数组描述队列中的数据元素,并预设一个数组的最大空间外,还需要为队列设立一个队首指针(front)和一个队尾指针(rear)。通常约定,队列初始化为空时,令front=rear=0,每当插入一个元素时,rear增加1,删除一个元素时front增加1。并且,在队列非空时,头指针指向队列的队首元素,尾指针指向队列队尾元素的下一个位置。 3.4 队列 为什么要引入循环队列? rear front 5 0 1 queue J1 rear rear J2 rear rear J3 rear rear J1 front front J2 front front J4 rear rear J5 rear rear J6 rear rear 空队列 J1,J2,J3入队列 J1和J2相继出列 J4,J5,J6相继入队列 队列中有空闲空间,而无法在队尾插入新的元素 3.4 队列 解决上面矛盾的一个办法是将顺序队列的首尾相接连成一个环状空间——循环队列。在这个环状空间中,队列的头、尾指针与队列元素之间的关系不变。 … MAXSIZE-1 0 1 … q.front q.rear 3.4 队列 如何判断环状队列满或空?请看下面两种情况: Q.rear J5 J6 Q.front Q.front J7 J8 J9 J10 J5 J6 Q.rear Q.front Q.rear 一般情况 队列满 队列空 由此可知,凭借Q.front==Q.rear无法判断环状队列Q是空 还是满。 当环状队列Q为空时: Q.front==Q.rear 当环状队列Q为满时: (Q.rear+1)%Q.queuesize==Q.front 说明:队列为满时少用一个元素空间 3.4 队列 两种判断方法: 设一标志区别队列是空还是满; 少用一个元素空间,约定队首指针在循环队列队尾指针的下一位置上作为队列满的状态标志。 J7 J8 J9 J5 J6 Q.rear Q.front 队列“满” 3.4 队列 循环队列的存储表示部分操作的实现 const QUEUE_INIT_SIZE=100; const QUEUEINCREMENT=10; typedef struct { QElemType *elem //存储队列元素的数组 int front; int rear; int queuesize; //当前最大容量 int incrementsize; //可扩充容量 }SqQueue; 3.4 队列 部分操作的实现 void InitQueue_Sq(SqQueue , int = QUEUE_INIT_SIZE, int =QUEUEINCREMENT); void InitQueue_Sq(SqQueue Q, int maxsize, int incresize) { //构造一个空队列 Q.elem=new QelemType[maxsize+1] Q.queuesize=maxsize+1; Q.incrementsize=incresize; Q.front=Q.rear=0; }//InitQueue_Sq 3.4 队列 int QueueLength_Sq( SqQueue Q) {//返回Q的元素个数 return (Q.queuesize+Q.rear-Q.front)%Q.queuesize; } // QueueLength_Sq 0 1 2 3 4 5 J5 J4 J3 J6 q.rear q.front 3 4 q.rear 1 2 q.front 3 4 q.rear 1 2 q.front 3.4 队列 Status DeQueue_Sq(SqQueue Q,ElemType e) {//若队列不空,删除其队首元素,并用e返回其值 if(Q.front==Q.rear) return FALSE;//队列为空 e=Q.elem[Q.fron
您可能关注的文档
- 四川省雅安市天全中学2016届高三语文11月月考试题详解.doc
- 四川省宜宾市2016届高三第二次诊断性测试数学(理)试题(含答案)详解.doc
- 输注血小板护理详解.ppt
- 四川小学五年级_小青蛙捉蛊记4_课件详解.ppt
- 四川信托有限公司核保核签工作管理办法(按监管要求的双人核保核签修订后清洁版)详解.doc
- 蔬菜的质量安全与检测技术1209详解.ppt
- 四川宜诚汽车贸易有限公司简介详解.ppt
- 蔬菜水果变干净详解.ppt
- 四川长虹应收账款案例详解.ppt
- 四次四校联考题讲解详解.ppt
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- 2025年上海市中考英语试题卷(含答案).docx
- 《2025年长护险机构服务标准化与质量控制体系》.docx
- 海南省2021-2022学年高二上学期期末学业水平诊断化学试题(原卷版)-精品.docx VIP
- 2025年 AMC 8 数学竞赛(中英双语)-学生用卷.doc VIP
- 2023年重庆三峡学院公共课《马克思主义基本原理概论》期末试卷B(有答案).docx VIP
- 西师版数学六年级上册知识点.doc VIP
- 氢气膨胀机的开发及应用.pdf VIP
- 2024-2025学年广东省深圳市龙华区八年级(上)期末语文试卷.docx VIP
- 2022年度工作总结模板.docx VIP
- 年产2000吨刺梨,金秋梨复合果酒工厂车间毕业设计.docx VIP
原创力文档


文档评论(0)