- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1页,共30页,2022年,5月20日,0点20分,星期四 3.2 队列 只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。 1. 定义 一、概念: 例如:队列 Q= (a1 , a2 , a3 , …, an ) 在队尾插入元素称为入队; 在队首删除元素称为出队。 队头元素 队尾元素 允许插入的一端为队尾,允许删除的一端为队头。 * 第2页,共30页,2022年,5月20日,0点20分,星期四 与线性表相同,仍为一对一关系。 顺序队或链队,以循环顺序队更常见。 只能在队首和队尾运算,且访问结点时依照先进先出(FIFO)的原则。 关键是掌握入队和出队操作,具体实现依顺序队或链队的不同而不同。 3. 存储结构: 4. 运算规则: 5. 实现方式 : 2. 逻辑结构: * 第3页,共30页,2022年,5月20日,0点20分,星期四 二、队列的抽象数据类型定义 ADT Queue { 数据对象: D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 } 数据关系: R1={ ai-1, ai | ai-1, ai∈D, i=2,...,n } 约定a1 端为队列头,an 端为队列尾。 基本操作: } ADT Stack * 第4页,共30页,2022年,5月20日,0点20分,星期四 (1)初始化队列 InitQueue(Q) (2)入队 EnQueue(Q,e) (3)出队 DeQueue(Q,e) (4)获取队头元素内容 GetHead(Q,e) (5)判断队列是否为空 QueueEmpty(Q) 基本操作: 建队列、判断队列是否为空、入队、出队、读队头元素值,等等。 * 第5页,共30页,2022年,5月20日,0点20分,星期四 链队列类型定义: typedef struct { QueuePtr front ; //队头指针 QueuePtr rear ; //队尾指针 } LinkQueue; 结点类型定义: typedef struct QNode { QElemType data; //元素 struct QNode *next; //指向下一结点的指针 } Qnode , * QueuePtr ; 关于整个链队的总体描述 链队中任一结点的结构 三、队列的表示和实现 1.单链队列 // -----队列的链式存储结构----- * 第6页,共30页,2022年,5月20日,0点20分,星期四 a1 ∧ an … Q.front Q.rear Q.front Q.rear ∧ 空队列 为了操作方便,添加一个头结点,令头指针指向头结点。 Q. front==Q. rear * 第7页,共30页,2022年,5月20日,0点20分,星期四 Status InitQueue (LinkQueue Q) { // 构造一个空队列 Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode)); if (!Q.front) exit (OVERFLOW); //存储分配失败 Q.front-next = NULL; return OK; } // -----基本操作的算法描述----- 建队操作——构造空队列Q * 第8页,共30页,2022年,5月20日,0点20分,星期四 Q (队尾) (队首) front a1 a2 a3 ^ rear p 链队会满吗? 一般不会,因为删除时有free动作。除非内存不足! 入队(尾部插入):rear-next=S; rear=S; 出队(头部删除):p=front-next; front-next=p-next; free(p); S e ^ 链队列的入队和出队操作 * 第9页,共30页,2022年,5月20日,0点20分,星期四 Status EnQueue (LinkQueue Q, QElemType e) { // 插入元素e为Q的新
您可能关注的文档
- 间质瘤 空肠普通外科疾病.ppt
- 间质肾小管疾病.ppt
- 间质浸润型肺炎非典型肺炎.ppt
- 闽楠栽培技术.ppt
- 阀性能实验台.ppt
- 间歇运动机构非重点.ppt
- 阀门和离心泵的基础知识培训.ppt
- 间质性膀胱炎和下尿路综合征进展.ppt
- 阀门与启闭机.ppt
- 阀门分类图解介绍及原理说明.ppt
- 2025浙江温州市公用事业发展集团有限公司面向高校招聘工作人考前自测高频考点模拟试题最新.docx
- 2025年蓬安县财政局下属单位招聘备考题库附答案.docx
- 广安市农业农村局2025年公开遴选市动物卫生监督所工作人员备考题库附答案.docx
- 南昌市劳动保障事务代理中心招聘3名劳务派遣驾驶员参考题库附答案.docx
- 2025浙江绍兴市新昌县机关事业单位招用编外聘用人员36人备考题库最新.docx
- 浙江国企招聘-2025嘉兴海盐县城市投资集团有限公司招聘7人笔试备考试题附答案.docx
- 长沙银行2026校园招聘备考题库最新.docx
- 2026年度中国地震局事业单位公开招聘备考题库附答案.docx
- 2025福建省晋江圳源环境科技有限责任公司招聘6人模拟试卷附答案.docx
- 浙江国企招聘-2025温州平阳县城发集团下属房开公司招聘5人公笔试备考试题附答案.docx
原创力文档


文档评论(0)