📄 链接队列.cpp
字号:
void InitQueue(LinkQueue& Q) //初始化队列
{
Q.front=Q.rear=NULL;
}
void EnQueue(LinkQueue& Q,ElemType item)//向队列中插入一个元素
{
LNode *newptr=new LNode();
newptr->data=item;
newptr->next=NULL;
if(Q.rear==NULL) //若队列为空,则新结点既是队首又是队尾
Q.front=Q.rear=newptr;
Q.rear->next=newptr; //若队列非空,则新结点被链接到队尾
Q.rear=newptr;
}
ElemType OutQueue(LinkQueue& Q) //从队列中删除一个元素
{
if(Q.front==NULL) //若队列为空则终止运行
{
cout<<"Empty!"<<endl;
exit(1);
}
LNode *p; //暂存队首元素以便返回
p=Q.front; //暂存队首指针以便回收队首结点
ElemType a=p->data; //使队首指针指向下一个结点
Q.front=p->next; //若删除后队列为空,则使队尾指针为空
if(Q.front==NULL)
Q.rear=NULL;
delete p;
return a; //返回删除的队首元素
}
void ClearQueue(LinkQueue& Q) //清除队列中的所有元素,使之变成空队
{
LNode *b; //对首时针赋给p
b=Q.front;
while(Q.front!=NULL) //依次删除队列中的每个元素
{
Q.front=b->next;
delete b;
b=Q.front;
}
Q.rear=NULL; //置队尾指针为空
}
bool EmptyQueue(LinkQueue& HQ) //检查队列是否为空
{
return HQ.front==NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -