队列的进出
有点问题,麻烦高手们看一下:#include <stdio.h>
#include <stdlib.h>
typedef struct QNode
{
int data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct Queue
{
QueuePtr front;
QueuePtr rear;
}*LinkQueue;
void InitQueue(LinkQueue Q)
{
Q->front=Q->rear=(QNode *)malloc(sizeof(QNode));
Q->front->next=NULL;
}
void EnQueue(LinkQueue Q,int e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
Q->rear->next=p;
Q->rear=p;
}
int OuQueue(LinkQueue Q,int *e)
{
QueuePtr p;
p=Q->front->next;
*e=p->data;
Q->front->next=p->next;
if(Q->rear=p)
Q->rear=Q->front;
return *e;
}
int QueueEmpty(LinkQueue Q)
{if(Q->front==Q->rear)
return 1;
else
return 0;
}
main()
{ LinkQueue S;
int a;
InitQueue(S);
scanf("%d",&a);
while(!a)
{
EnQueue(S,a);
scanf("%d",&a);
}
while(!QueueEmpty(S))
{
OuQueue(S,&a);
printf("%4d",a);
}
}