链式队列

来源:互联网 发布:ubuntu 16.04 wine1.9 编辑:程序博客网 时间:2024/05/20 15:12
/*输入几个数,输出几个数   简单的用链表队列 */ #include <stdio.h>#include <stdlib.h>typedef struct Node{int data;struct Node *next;}node;typedef struct{node *front;node *rear;}qnode;void initqueue(qnode *q){q->front=q->rear=(node *)malloc(sizeof(node ));q->front->next=NULL;}int queueempty(qnode *q){if(q->front->next!=NULL)return 1;elsereturn 0;}int inqueue(qnode *q,int x){node *r;r=(node *)malloc(sizeof(node));r->data=x;r->next=NULL;q->rear->next=r;q->rear=r;return 1;}int outqueue(qnode *q,int *x){node *s;if(queueempty(q)){s=q->front->next;*x=s->data;q->front->next=s->next;free(s);return 1;}return 0;}int main(){int n,m,l;scanf("%d %d",&n,&l);int i,j;qnode q;initqueue(&q);for(i=1;i<=n;i++){scanf("%d",&m);inqueue(&q,m); }  for(i=1;i<=l;i++) { if(outqueue(&q,&m)) printf("%d ",m); else printf(" 队列已空"); } printf("\n"); return 0;}

0 0
原创粉丝点击