队列的链式存储
作者:互联网
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