我这个简单的链队哪里错了,百思不得其解
#include<stdio.h>#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}snode,*psnode;
typedef struct{
psnode front,rear;
}Linkqueue,*pLinkqueue;
void In_queue(int x,pLinkqueue Qu)
{
psnode p;
p=(psnode)malloc(sizeof(psnode));
if(!p)
{
printf("内存溢出\n");
}
p->data=x;
p->next=NULL;
if(!empty(Qu))
{
Qu->front=p;
Qu->rear=p;
}
else
{
Qu->rear->next=p;
Qu->rear=p;
}
}
int empty(pLinkqueue q)
{
if(q->front==NULL)
return 0;
else return 1;
}
int push_queue(pLinkqueue queue)
{
int x;
psnode sp;
x=queue->front->data;
sp=queue->front;
queue->front=queue->front->next;
free(sp);
return x;
}
pLinkqueue creat_queue()
{
pLinkqueue q;
q=(pLinkqueue)malloc(sizeof(pLinkqueue));
if(q)
{
q->front=NULL;
q->rear=NULL;
}
return q;
}
int main()
{
int a,b,n,i;
pLinkqueue Q;
Q=creat_queue();
In_queue(0,Q);
In_queue(1,Q);
In_queue(0,Q);
for(i=0;i<3;i++)
printf("%d",push_queue(Q));
}