- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* a3 a2 a1 0 1 2 3 N-1 rear front 循环队列(臆造) 顺序队列 a3 a2 a1 front rear 0 1 2 3 . . N-1 rear front 4 5 0 1 2 3 (a)队列初始情况 4 5 0 1 2 3 rear front (b)A进队 A front 4 5 0 1 2 3 rear (c) B、C、D进队 A B C D 4 5 0 1 2 3 rear (d) ABCD出队 front 队空 front 4 5 0 1 2 3 rear (f) G H I J进队 E F g H I J front 4 5 0 1 2 3 (e) E、F进队 E F rear 队满 如图所示:由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时头尾指针均相等。因此,我们无法通过front==rear来判断队列“空”还是“满”。 * 新问题:在循环队列中,空队特征是front=rear;队满时也会有front=rear;判决条件将出现二义性! 解决方案有三: ① 加设标志位,让删除动作使其为1,插入动作使其为0,则可识别当前 front=rear ② 使用一个计数器记录队列中元素个数(即队列长度); ③ 人为浪费一个单元,令队满特征为front=(rear+1)%N; front 4 5 0 1 2 3 rear (f) G H I J进队 E F g H I J 4 5 0 1 2 3 (a)队列初始情况 * 队空条件 : front = rear (初始化时:front = rear ) 队满条件: front = (rear+1) % N (N=maxsize) 队列长度:L=(N+rear-front)% N J2 J3 J1 J4 J5 front rear 选用空闲单元法:即front和rear之一指向实元素,另一指向空闲元素。 问2: 在具有n个单元的循环队列中,队满时共有多少个元素? n-1个 5 问1:左图中队列长度L=? * J6 J5 J7 J8 J9 例1: 一循环队列如下图所示,若先删除4个元素,接着再插入4个元素,请问队头和队尾指针分别指向哪个位置? J2 J3 J1 J4 J5 front rear 解:由图可知,队头和队尾指针的初态分别为front=1和rear=6。 front rear 删除4个元素后front=5;再插入4个元素后,r=(6+4)%6=4 front front front front front * 问:为什么要设计队列?它有什么独特用途? 离散事件的模拟(模拟事件发生的先后顺序); 操作系统中多道作业的处理(一个CPU执行多个作业); 3. 简化程序设计。 答: 循环队列的操作实现见教材P64 * 循环队列的操作实现 1)初始化一空队列 算法要求:生成一空队列 算法操作:为队列分配基本容量空间 设置队列为空队列, 即 front=rear=0(也可为任意单元,如 2,或 4); * 算法: Status InitQueue ( SqQueue q ) {//初始化空循环队列 q q . base=(QElemType *)malloc(sizeof(QElemType) * QUEUE_MAXSIZE); //分配空间 if (!q.base) exit(OVERFLOW);//失败,退出程序 q.front =q.rear=0;//置空队列 return OK; }//InitQueue; 新开单元的地址为0则表示内存不足 * 算法说明:向循环队列的队尾插入一个元素 分 析: (1) 插入前应当先判断队列是否满 if (( q . rear + 1 ) % QUEUE_MAXSIZE )==q.front) return ERROR; (2)插入动作 q.base [q.rear] = e; q.rear = ( q . rear + 1 ) % QUEUE_MAXSIZE; 2) 入队操作 * Status EnQueue(SqQueue q,
您可能关注的文档
- 初中数学文化与课外活动案例分析.ppt
- 初中数学优秀教案(教案+说课).doc
- 初中英语教案.ppt
- 初中英语教案模板.doc
- 初中英语教学设计展示.ppt
- 初中英语说课范例-GO-FOR-IT.ppt
- 初中英语写作教学设计与评价(理论).ppt
- 初中英语写作教学---朱琰清.ppt
- 初中语文《公输》课件教案.ppt
- 初中语文教学设计.doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 《第一单元 生活中的音乐学习项目二 音乐开启心灵之窗》教案(表格式)七年级音乐人教版(2024新版).pdf VIP
- 成功标书大餐——15份浙江省自然科学基金申请书.pdf VIP
- (辽宁富士电梯)系统故障代码及说明.doc VIP
- 2025版高考政治全程一轮复习必修2第一单元生产资料所有制与经济体制第一课我国的生产资料所有制课件.pptx VIP
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案.docx VIP
- 伤口换药护理操作.pptx VIP
- 贵州01-贵州省居住建筑节能设计标准DBJ52-49-20082.pptx VIP
- 《2023年度中国展览数据统计报告》.docx
- 城市名居商住楼房地产估价报告.doc VIP
- [说明]富士变频器维修与故障处理.doc VIP
文档评论(0)