#include<iostream>
#include<cstdio>
#include<stdlib.h>
#include<malloc.h>
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 10
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
using namespace std;
typedef struct qnode{
int data;
struct qnode* next;
}ElemType;
typedef int Status;
typedef struct{
ElemType* front;
ElemType* rear;
}LinkQueue;
Status EmptyQueue(LinkQueue&q){
if(q.front==q.rear)return OK;
return ERROR;
}
Status InitQueue(LinkQueue& q){
q.front=q.rear=(ElemType*)malloc(sizeof(ElemType));
if(!q.front)exit(OVERFLOW);
q.front->next=NULL;
}
Status DestoryDeque(LinkQueue& q){
while(q.front){
q.rear=q.front->next;
free(q.front);
q.front=q.rear;
}
return OK;
}
Status EnQueue(LinkQueue& q,ElemType e){
ElemType*t=(ElemType*)malloc(sizeof(ElemType));
if(!t)exit(OVERFLOW);
t->data=e.data;
q.rear->next=t;
q.rear=t;
return OK;
}
Status Dequeue(LinkQueue& q,ElemType&e){
if(EmptyQueue(q)){
return ERROR;
}
ElemType*p=q.front->next;
e=*(q.front->next);
q.front->next=p->next;
if(q.rear==p)q.rear=q.front;
free(p);
return OK;
}
int main(){
}