#include<stdio.h>
#include<stdlib.h>
typedef struct LinkNode{ //链式队列结点
int data; //存放队列元素
struct LinkNode *next; //指向下一个元素的指针
}LinkNode; //顺序栈的类型定义
typedef struct{ //链式队列
LinkNode *front,*rear; //队列的队头和队尾指针
}LinkQueue;
int main(){
return 0;
}
void textLinkQueue(){
void InitQueue(LinkQueue &Q);
LinkQueue Q;
InitQueue(Q);
}
//初始化队列(带头结点)
void InitQueue(LinkQueue &Q){
//初始时front,rear都指向头结点
Q.front =Q.rear =(LinkNode *)malloc(sizeof(LinkNode));
Q.front->next =NULL;
}
//判断队列是否为空
bool IsEmpty(LinkQueue Q){
if(Q.front==Q.rear){
return true;
}else{
return false;
}
}
//新元素入队(带头结点)
void EnQueue(LinkQueue &Q,int e){
LinkNode *s=(LinkNode *)malloc(sizeof(LinkNode));
s->data =e;
s->next =NULL;
Q.rear->next=s; //新结点插入到rear后
Q.rear =s; //修改表尾指针
}
//队头元素出队(带头结点)
bool DeQueue(LinkQueue &Q,int &e){
LinkNode *p;
if(Q.front==Q.rear){
return false; //队列为空
}
e=Q.rear->data;
p=Q.front->next;
Q.front->next =p->next;
if(Q.rear =p){
Q.front =Q.rear;
}
free(p);
return true;
}