(16)--第三章第五节链队列的基本操作.pdf

(16)--第三章第五节链队列的基本操作.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

01【链队列的存储结构】

目录02【构造一个空队列】

CONTENTS03【入队列】

04【出队列】

01链队列的存储结构

链队列的存储结构

用链表表示的队列简称为链队列。

一个链队列显然需要分别指示队头和队尾的两个指针。

Q.rear

Q.front

…/\

为了操作方便,添加一个头结点,并令头指针指向头结点,

因此链队列为空的条件是:头指针和尾指针均指向头结点

空队列Q.front/\

Q.rear

队列的链式存储结构

//结点类型

typedefstructQNode

{QElemTypedata;

structQNode*next;

}QNode,*QueuePtr;

//链队列类型

typedefstruct{

QueuePtrfront;//队头指针

QueuePtrrear;//队尾指针

}LinkQueue;

02构造一个空队列

构造一个空队列

1.问题分析

•操作名称:InitQueue(Q)Q.front/\

•操作结果:构造一个空队列QQ.rear

算法思想:

1)申请头结点的存储空间,让队头和队尾指针都指向头结点

2)头结点的指针域设为NULL

构造一个空队列

2.算法描述

//构造一个空队列Q

StatusInitQueue(LinkQueueQ)

{//申请头结点的内存空间

Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));

if(!Q.front)exit(OVERFLOW);//存储分配失败

Q.front-next=NULL;

returnOK;

}

03入队列

入队列p

Q.front

a1a2…an/\e/\

1.问题分析

•操作名称:EnQueue(Q,e)Q.rear

•初始条件:队列Q已存在

•操作结果:插入元素e为Q的新的队尾元素

算法思想:

1)申请新元素的结点空间,若申请不成功则退出,

若申请成功,则结点的数据域为e,指针域为空;

2)将新生成的结点链接到队尾之后,作为新的队尾

3)队尾指针移向新

文档评论(0)

177****2883 + 关注
实名认证
内容提供者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档