#include <stdio.h>
#include <stdlib.h>
typedef int QElemType;
typedef struct QNode{
QElemType data;
struct QNode * next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//初始化
void InitQueue(LinkQueue &Q){
Q.front=Q.rear=(QNode*)malloc(sizeof(QNode));
Q.front->next=NULL;
}
//判队空
bool IsEmpty(LinkQueue Q){
if(Q.front==Q.rear)return true;
else return false;
}
//入队
void EnQueue(LinkQueue &Q,QElemType x){
QNode *s=(QNode*)malloc(sizeof(QNode));
s->data=x;
s->next=NULL;
Q.rear->next=s;
Q.rear=s;
}
//出队
bool DeQueue(LinkQueue &Q,QElemType &x){
if(Q.front==Q.rear)return false;
QNode *p=Q.front->next;
x=p->data;
Q.front->next=p->next;
if(Q.rear==p)
Q.rear=Q.front;
free(p);
return true;
}
int main(){
LinkQueue Q;
InitQueue(Q);
EnQueue(Q,2);
EnQueue(Q,4);
EnQueue(Q,6);
int num;
DeQueue(Q,num);
printf("%d",num);
return 0;
}