📄 queue.h
字号:
#include <iostream>
using namespace std;
#define OK 0;
#define ERROR 1;
typedef int Status;
typedef int QElemType;
typedef struct QNode{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}LinkQueue; //定义链式列队存储结构
Status InitQueue(LinkQueue &Q)
{
Q.front=new QNode; if(!Q.front)exit(1);
Q.rear=Q.front;
Q.front->next=NULL; //初始化列队,有头结点
return OK;
}
Status DestroyQueue(LinkQueue &Q) //摧毁列队
{
while(Q.front)
{
Q.rear=Q.front->next;
delete Q.front;
Q.front=Q.rear;
}
return OK;
}
Status EnQueue(LinkQueue &Q,QElemType e) //入队尾
{
QueuePtr p;
p=new QNode;if(!p)exit(1);
p->data=e;p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return OK;
}
Status DeQueue(LinkQueue &Q,QElemType &e) //出队
{
QueuePtr p;
if(Q.front==Q.rear)return ERROR;
p=Q.front->next;
e=p->data;
Q.front->next=p->next;
if(Q.rear==p)Q.rear=Q.front;
delete p;
return OK;
}
Status ShowQueue(LinkQueue Q) //显示列队所有成员
{
QueuePtr p;
p=Q.front->next;
if(Q.front==Q.rear)return ERROR;
while(p!=Q.rear)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<p->data<<" ";
return OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -