- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(数据结构课件)队列培训资料.ppt
4.7 队 列;4.7.1 队列的定义及其运算;例:队列q=(a1,a2,a3,…,an),则进队的顺序为
a1,a2,a3,…,an,队头元素为a1,队尾元素为an。
;2.队列的基本运算
(1) InitQueue(Q) 初始化:初始化一个新的队列,即置为空。
(2) ClearQueue(Q) 清空队列:清除队列中所有元素,并置为空。
(3) EmptyQueue (Q) 队列的空判断:若队列Q为空,则返回true;否则,返回false。
(4) PeekQueue(Q) 读取队头元素:若队列Q不空,则返回队头元素。但未删除队头元素,故队头指针不变。
(5) EnQueue(Q,item) 进队:在队列Q的尾部插入元素item,使元素item成为新的队尾。
(6) OutQueue(Q) 出队:若队列Q不空,则返回队头元素,并从队头删除该元素,队头指针指向原队头的后继元素。
队列是一种特殊的线性表,因此队列可采用顺序存储结构存储,也可以使用链接存储结构存储。;4.7.3 队列的顺序存储结构和操作实现;队空情况:;队满情况:;队空情况:;当元素不断进队,队满时,front=(rear+1)%MaxSize,此条件仍与前面的队满条件相同。;2. 顺序队列的操作实现
(1)初始化队列
函数名:InitQueue
形参:顺序队列Q
返回值:无
功能:置队列为空。队空的条件为front=rear,初始情况令它们都等于0,所以令front=rear=0
(2)清空队列
函数名:ClearQueue
形参:顺序队列Q
返回值:无
功能:对静态顺序队列而言,此算法与初始化队列完全相同。 ;2. 顺序队列的操作实现
(3)判别队空
函数名:EmptyQueue
形参:顺序队列Q
返回值:若队空返回true,否则返回false
功能:判断队列Q是否为空,即判断Q.front是否等于Q.rear
(4)读取队首元素
函数名:PeekQueue
形参:顺序队列Q
返回值:队首元素的值
功能:若队非空,则返回队首元素的值。因为front指向队首元素前一个的位置,所以队首元素的下标位置为:(Q.front+1)%MaxSize;2. 顺序队列的操作实现
(5)元素进队
函数名:EnQueue
形参:顺序队列Q,待进队元素item
返回值:无
功能:若队列未满,先令队尾指针加1,即令Q.rear=(Q.rear+1)%MaxSize,然后赋item的值到新的队尾。
(6)元素出队
函数名:OutQueue
形参:顺序队列Q
返回值:队头元素
功能:若队列未空,先令队头指针加1,即令Q.front=(Q.front+1)%MaxSize,然后返回原队头元素。 ;4.7.4 队列的链式存储结构和操作实现;链队用C或C++可表示为:
struct LinkQueue{
LNode *front; //队首指针
LNode *rear; //队尾指针
};;2. 链队的操作实现
(1)初始化队
函数名:InitQueue
形参:链队HQ
返回值:无
功能:置链队为空,即令HQ.front=HQ.rear=NULL
(2)清空队
函数名:ClearQueue
形参:链队HQ
返回值:无
功能:从队首(即表头)开始,依次删除各结点,并回收每个结点所占的空间,直至队尾。最后置链队为空。
;2. 链队的操作实现
(3)判别队空
函数名:EmptyQueue
形参:链队HQ
返回值:若链队为空返回true,否则返回false
功能:判断链队是否为空,即判断队首指针HQ.front或队尾指针HQ.rear是否为NULL。这两个指针任何一个为空时,另一个必定也为空。
(4)读取队首元素
函数名:PeekQueue
形参:链队HQ
返回值:队首元素的值
功能:若链队非空,则返回队首元素的值,即队首指针所指向结点的data值。 ;2. 链队的操作实现
(5)元素进队
函数名:EnQueue
形参:链队HQ,待进队元素item
返回值:无
功能:把新元素item插入到队尾,即单链表的表尾。分两步:1)为新元素分配内存空间;
2)把新元素插入到队尾: ;2. 链队的操作实现
(6)元素出队
函数名:OutQueue
形参:链队HQ
返回值:队首元素
功
文档评论(0)