链队
1初始化
void InitQueue(LinkQueue &Q){
Q.front=Q.rear=(LinkNode*)malloc(sizeof(LinkNode));
Q.front->next=NULL;
}
2、判队空
bool isEmpty(LinkQueue Q){
if(Q.front==Q.rear) return ture;
else return false;
}
3、入队
void EnQueue(LinkQueue & Q,ElemType x){
LinkNode *s=(LinkNode*)malloc(sizeof(LinkNode));
s->data=x;
s->next=NULL;
Q.rear->next=s;
Q.rear=s;
}
4、出队列
bool DeQueue(LinkQueue &Q,ElemType &x){
if(Q.front==Q.rear) return false;
LinkNode *p=Q.front->next;
x=p->data;
Q.front-next=p->next;
if(Q.rear==p)
Q.rear=Q.front;
free(p);
return true;
}