用队列求杨辉三角,求大神指错
#include<stdio.h>#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}snode,*psnode;
typedef struct{
psnode front,rear;
}Linkqueue,*pLinkqueue;
pLinkqueue creat();
void In_queue(int x,pLinkqueue Qu);
int push_queue(pLinkqueue q);
void get_queue(pLinkqueue que,int *y);
int empty(pLinkqueue q);
void Yanghui(pLinkqueue Q);
pLinkqueue creat_queue();
pLinkqueue creat_queue()
{
pLinkqueue q;
q=(pLinkqueue)malloc(sizeof(pLinkqueue));
if(q)
{
q->front=NULL;
q->rear=NULL;
}
return q;
}
void In_queue(int x,pLinkqueue Qu)
{
psnode p;
p=(psnode)malloc(sizeof(psnode));
if(!p)
{
printf("内存溢出\n");
}
p->data=x;
if(!empty(Qu))
{
Qu->front=p;
Qu->rear=p;
}
else
{
Qu->rear->next=p;
Qu->rear=p;
}
}
int push_queue(pLinkqueue q)
{
int x;
psnode p;
p=q->front;
x=q->front->data;
q->front=q->front->next;
free(p);
return x;
}
void get_queue(pLinkqueue q,int *y)
{
*y=q->front->data;
}
int empty(pLinkqueue q)
{
if(q->front==q->rear)
return 0;
else return 1;
}
void Yanghui(pLinkqueue Q)
{
int a,b,n,i;
In_queue(0,Q);
In_queue(1,Q);
In_queue(0,Q);
printf("列数为:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
a=push_queue(Q);
get_queue(Q,&b);
In_queue(a+b,Q);
printf("%d\t",a);
if(b==0)
{
In_queue(0,Q);
printf("\n");
}
}
}
int main()
{
pLinkqueue Q;
Q=creat_queue();
Yanghui(Q);
}
我调试就在void get_queue(pLinkqueue q,int *y)
{
*y=q->front->data;
}读取队头数据出错,一头雾水,谁能告诉我哪里错了