/*输入几个数,输出几个数 简单的用链表队列
*/
#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;
else
return 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;
}