其他分享
首页 > 其他分享> > 队列的链式存储

队列的链式存储

作者:互联网

 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 }

 

标签:存储,return,队列,LinkQueue,next,链式,front,LinkNode,rear
来源: https://www.cnblogs.com/Jack-son/p/16475483.html