- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构-ch02
2.3.2 队列的顺序存储 约定:队头指针指向队头元素前面一个位置,队尾指针指向队尾元素位置 初始为空队列,随后数据元素a1,a2,a3依次入队 ;然后数据元素a4, a5, a6, a7, a8依次入队,a1到a5依次出队;然后数据元素a9入队 如何判断队列的空和满? 假溢出问题 队头元素:q-entry[q-front+1] 队尾元素:q-entry[q-rear] 2.3.2 队列的顺序存储 如何解决“假溢出”问题? 方法一 固定队头指针永远指向数据区开始位置,如果数据元素出队,则将队列中所有数据元素前移一个位置,同时修改队尾指针。 优点/缺点? 方法二 视为“循环顺序队列” 循环队列示意图 循环队列示意图 实现方法 front=(front+1)% MAXQUEUE; rear=(rear+1)% MAXQUEUE; 2.3.2 队列的顺序存储 0 1 2 3 4 5 rear front rear front J4 J5 J6 0 1 2 3 4 5 J9 J8 J7 J4 J5 J6 0 1 2 3 4 5 rear front 初始状态 J4,J5,J6出队 J7,J8,J9入队 队空:front= =rear 队满:front= =rear 2.3.2 队列的顺序存储-循环队列判空和满 1.用一个计数变量来记载队列中的元素个数 初始化队列时c=0; 当入队时,计数变量+1( c++) 当出队时,计数变量-1 (c--) 当计数变量=maxsize时,队满 当计数变量=0时,队空 2.另外设一个标志以区别队空、队满 初始化队列时: sq- front= sq- rear,标志位为false 入队后,使sq- front= sq- rear,则置标志位为true 出队后,将标志位置为false front= = rear 标志位= =true 队满 front= = rear 标志位= =false 队空 其它情况 非空非满 3.少用一个元素空间: 队空:front= =rear 队满:(rear+1)%M= =front 2.3.3 队列的链式存储 选择哪种链表作为队列存储结构? 带头节点的单链表 头尾指针如何表示? 2个指针/带头节点的单链表 q a1 an ^ 头指针 尾指针 typedef struct node { /*链式队列的结点结构*/ QueueEntry Entry; struct node *next; }QueueNode, *QueueNodePtr; typedef struct queue{ /*链式队列*/ QueueNode *front; /*队头指针*/ QueueNode *rear; /*队尾指针*/ } Queue,*QueuePtr; 2.3.3 队列的链式存储 空队:q-front == q-rear 只有一个元素:q-rear-next = p; q-rear = p; 非空队 2.3.5 队列的应用 自助交易平台的设计 需求 买票/卖票 先来先服务FIFO 结构设计 2个队列:买票---等待队列;卖票---待售队列 算法设计 While(T){ 接受请求; 买票:待售队列不空,卖票人出队;否则买票人进入等待队列; 卖票:等待队列不空,买票人出队;否则卖票人进入待售队列; } 银行业务模拟 2.4 数组 一维数组 线性表(a1,a2,…,an) 二维数组 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 数组的逻辑特征是: 数据元素可能存在多个直接前驱和多个直接后继 线性表在维度上的推广 它的数据元素本身也是一个维度更低的数组 运算:给定下标,存取或者修改数据元素 2.4.2 数组的表示和实现 问题:计算机的存储结构是一维的,而数组一般是多维的,怎样存放? 解决办法:由于数组不作插入、删除操作,所以常采用顺序存储结构来实现;
您可能关注的文档
最近下载
- EN 1337-3:2005 结构支座-第三部分:橡胶支座 (中文版).pdf VIP
- 小学一年级语文上册知识点(通用13篇).doc VIP
- 普通职员月度工作总结.docx VIP
- 2025至2030黄金珠宝首饰行业运营态势与投资前景调查研究报告.docx
- 小区供热工程毕业设计开题报告.pdf VIP
- 企业工会助推企业高质量发展.docx VIP
- GB_T230.1-2018金属材料 洛氏硬度试验 第1部分:试验方法11.pdf
- 基于核心素养的小学数学单元教学目标制定与实施策略教学研究课题报告.docx
- 手术病理标本前处理流程2023.pptx VIP
- 【招聘管理体系设计】摩托罗拉的招聘.pdf VIP
原创力文档


文档评论(0)