关于队列的程序,请帮忙看一下出队列
#include<stdio.h>#include<stdlib.h>
#define MaxSize 100
typedef struct Queue{
int data[MaxSize];
int front,rear;
}Queue;
Queue Q;
//初始化队列
int initQueue(Queue &Q)
{
Q.rear=Q.front=0;
return 1;
}
//入队列
int EnQueue(Queue &Q, int x)
{
if((Q.rear+1)%MaxSize==Q.front)
return 0;
else
{
Q.rear=(Q.rear+1)%MaxSize;
Q.data[Q.rear]=x;
return 1;
}
}
//出队列
int DeQueue(Queue &Q,int &x)
{
if(Q.rear==Q.front)
return 0;
else
{
Q.front=(Q.rear+1)%MaxSize;
x=Q.data[Q.front];
return 1;
}
}
//判断对空
int QueueEmpty(Queue Q)
{
if(Q.rear==Q.front)
return 1;
else
return 0;
}
int main()
{
initQueue(Q);
int data;
printf("输入数据(-999表示结束):");
scanf("%d", &data);
while (data != -999) {
EnQueue(Q, data);
printf("输入数据(-999表示结束):");
scanf("%d", &data);
}
//输出队列这里运行时不对,不知道问题出在哪里,希望高手指点一下
printf("输出队列:");
while (Q.rear!=Q.front) {
DeQueue(Q, data);
printf("%d, ", data);
}
printf("END\n");
system("pause");
return 0;
}