1 #include <stdio.h>
2 #include <stdlib.h>
3 typedef struct node{
4 int data;
5 struct node *next;
6 }LinkNode;
7 typedef struct{
8 LinkNode *front,*rear;
9 }LinkQueue;
10 //初始化
11 bool InitQueue(LinkQueue *Q){
12 Q->front=Q->rear=(LinkNode *)malloc(sizeof(LinkNode));//建立头结点
13 Q->front->next=NULL;
14 return true;
15 }
16 //入队
17 bool EnQueue(LinkQueue *Q,int x){
18 LinkNode *m;
19 m=(LinkNode *)malloc(sizeof(LinkNode));
20 m->data=x;
21 Q->rear->next=m;
22 Q->rear=m;
23 Q->rear->next=NULL;
24 return true;
25 }
26 //判断队空
27 bool IsEmpty(LinkQueue *Q){
28 if(Q->front==Q->rear)
29 return true;
30 else
31 return false;
32 return true;
33 }
34 //出队
35 bool DeQueue(LinkQueue *Q,int &x){
36 if(Q->front==Q->rear)
37 return false;
38 LinkNode *p;
39 p=Q->front->next;
40 x=p->data;
41 Q->front->next=p->next;
42 free(p);
43 return true;
44 }
45 //遍历
46 bool travel(LinkQueue *Q){
47 LinkNode *m;
48 m=Q->front->next;
49 while(m){
50 printf("%d",m->data);
51 m=m->next;
52 }
53 return true;
54 }
55 int main(){
56 LinkQueue Q;
57 InitQueue(&Q);
58 EnQueue(&Q,1);
59 EnQueue(&Q,2);
60 EnQueue(&Q,3);
61 travel(&Q);
62 // printf("%d",IsEmpty(&Q));
63 return 0;
64 }