顺序循环队列
输出不对,帮忙指点一下:#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct cilqueue
{ int elem[MAXSIZE];
int front,rear;
}cqueue,*queue;
queue setnull(queue Q)
{
Q->front=MAXSIZE-1;
Q->rear=MAXSIZE-1;
return Q;
}
int qempty(queue Q)
{
if(Q->rear==Q->front)
return 1;
else
return 0;
}
void enqueue(queue Q,int e)
{
if(Q->front==(Q->rear+1)%MAXSIZE)
printf("队列已经满了.");
else
{
Q->rear=(Q->rear+1)%MAXSIZE;
Q->elem[Q->rear]=e;
}
}
int ouqueue(queue Q,int *e)
{
if(qempty(Q))
printf("队列是空的.");
else
Q->front=(Q->front+1)%MAXSIZE;
*e=Q->elem[Q->front];
return *e;
}
main()
{ cqueue Q;
int a;
printf("请输入循环队列中的数据:");
scanf("%d",&a);
while(a!=0)
{
enqueue(&Q,a);
scanf("%d",&a);
}
while(!qempty(&Q))
{
ouqueue(&Q,&a);
printf("%d",a);
printf(" ");
}
}