#include<iostream>
#include<vector>
using namespace std;
//结构定义
#define maxSize 50
typedef struct LinkNode{
int data;
struct LinkNode *next;
};
typedef struct{
LinkNode *prior,*rear;
}LinkQueue;
void initLinkQueue(LinkQueue &Q){
//带头结点的链表
LinkNode *s = new LinkNode;
s->next = nullptr;
Q.prior = s;
Q.rear = s;
}
bool IsEmpty(LinkQueue Q){
if(Q.prior == Q.rear){
return true;
}
return false;
}
void EnQueue(LinkQueue &Q,int elem){
LinkNode *s = new LinkNode;
s->data = elem;
s->next = nullptr;
Q.rear->next = s;
Q.rear = s;
}
bool DeQueue(LinkQueue &Q,int elem){
//判断队列是否为空
if(Q.prior == Q.rear){
return false;
}
LinkNode *p = Q.prior->next;
elem = p->data;
Q.prior->next = p->next;
if(Q.rear == p){
Q.rear = Q.prior;
}
free(p);
return true;
}