数据结构链队列Word下载.docx
- 文档编号:15911526
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:5
- 大小:16.09KB
数据结构链队列Word下载.docx
《数据结构链队列Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构链队列Word下载.docx(5页珍藏版)》请在冰豆网上搜索。
returnQ->
front==NULL&
&
Q->
rear==Null;
//实际上只须判断队头指针是否为空即可
(3)入队
voidEnQueue(LinkQueue*Q,DataTypex)
{//将元素x插入链队列尾部
QueueNode*p=(QueueNode*)malloc(sizeof(QueueNode));
//申请新结点
p->
data=x;
next=NULL;
if(QueueEmpty(Q))
rear=p;
//将x插入空队列
else{//x插入非空队列的尾
rear->
next=p;
//*p链到原队尾结点后
//队尾指针指向新的尾
(4)出队
DataTypeDeQueue(LinkQueue*Q)
DataTypex;
QueueNode*p;
Error("
Queueunderflow"
);
//下溢
p=Q->
front;
//指向对头结点
x=p->
data;
//保存对头结点的数据
front=p->
next;
//将对头结点从链上摘下
if(Q->
rear==p)//原队中只有一个结点,删去后队列变空,此时队头指针已为空
free(p);
//释放被删队头结点
returnx;
//返回原队头数据
(5)取队头元素
DataTypeQueueFront(LinkQueue*Q)
Queueifempty."
front->
注意:
①和链栈类似,无须考虑判队满的运算及上溢。
②在出队算法中,一般只需修改队头指针。
但当原队中只有一个结点时,该结点既是队头也是队尾,故删去此结点时亦需修改尾指针,且删去此结点后队列变空。
③以上讨论的是无头结点链队列的基本运算。
和单链表类似,为了简化边界条件的处理,在队头结点前也可附加一个头结点,增加头结点的链队列的基本运算【参见练习】
假设数据元素为int型
大概的函数如下所示:
功能函数没怎么写注释,如果你不是很懂的话可以看下书,或者拿只笔出来画画,只是你对这个还没能够明白才不懂的,你把单链表的创建删除过程在纸上一画就会慢慢熟悉明白了的
#include<
iostream>
usingnamespacestd;
structNode
{
intdata;
Node*next;
//链表节点的结构
};
structQueue
Node*front;
Node*rear;
//队列的首尾指针
intSetnull(Queue&
Q)
Q.front=Q.rear=newNode;
//将队列置空也是初始化
if(!
Q.front)
return0;
Q.front->
return1;
}
intempty(QueueQ)
if(Q.front==Q.rear)
else
intgetfirst(Queue&
if(empty(Q))
cout<
<
"
thequeueisempty!
endl;
returnQ.front->
next->
intenqueue(Queue&
Node*p;
intelem;
输入一个要进队列的数"
cin>
>
elem;
p=newNode;
p)
p->
data=elem;
Q.rear->
Q.rear=p;
intdel(Queue&
Thequeueisempty!
p=Q.front->
next=p->
if(Q.rear==p)
Q.rear=Q.front;
deletep;
voidtraverse(QueueQ)
Q.front=Q.front->
while(Q.front)
data<
'
'
;
voidshowTable(QueueQ)
system("
cls"
//清屏的作用
======================================"
1----入队"
2----出队"
3----将队列置空"
4----队列第一个元素"
5----退出"
目前队列内没有元素,为空,选择1向队列内输入元素"
当前队列内的元素是:
traverse(Q);
请给出你的选择:
voidmain()
QueueQ;
Setnull(Q);
boolflag=true;
charch;
while(flag)
showTable(Q);
ch;
if(ch=='
1'
)
enqueue(Q);
elseif(ch=='
2'
del(Q);
elseif(ch=='
3'
队列被置空"
4'
队列的第一个元素是"
getfirst(Q)<
5'
flag=false;
用户选择退出……"
输入错误,请重新输入"
pause"
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 队列