- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构-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 数组的表示和实现 问题:计算机的存储结构是一维的,而数组一般是多维的,怎样存放? 解决办法:由于数组不作插入、删除操作,所以常采用顺序存储结构来实现;
您可能关注的文档
- 数据仓库与数据挖掘.ppt
- 数据库6版讲稿第六章----形式化关系查询语言.ppt
- 数据处理软件Excel 2010.pptx
- 数据库保护.ppt
- 数据库上课 第五讲 SQL语言_2(简单查询与连接).ppt
- 数据处理的基础知识.ppt
- 数据库及程序设计01.pptx
- 数据库上课 第八讲 数据库的安全性与完整性.ppt
- 数据库实验.doc
- 数据库恢复.ppt
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
文档评论(0)