关于队列的入队问题
程序输入你的姓名时,程序自己就停止了,根本就无法输出程序中元素的入队个数,不知道是哪个环节出错了,请大家指点一下吧!#include"stdio.h"
typedef struct
{
int id[10];
char name[10];
}datatype;
typedef struct QNode
{
datatype data;
struct QNode *next;
} QNode;
typedef struct
{
QNode *front; //队头指针
QNode * rear; //队尾指针
}LinkQueue;
void InQueue (LinkQueue *Q )
{
QNode *s;
datatype p;
printf("请输入就诊号:") ;
scanf("%d",p.id);
//getchar();
printf("请输入姓名:") ;
scanf("%s",p.name);
s=new QNode;
s->data=p;
s->next=NULL;
if(Q->front==NULL && Q->rear==NULL)//空队
Q->rear=Q->front=s;
else
{ Q->rear->next=s; Q->rear=s; }
}
int QueueLen(LinkQueue *Q)
{
int n=0;
QNode* p=Q->front;
if(p==NULL)
printf("队列为空!");
else
while(p!=NULL)
{
n++;
p=p->next;
}
return n;
}
main()
{
int i;
LinkQueue Q1;
InQueue(&Q1);
i=QueueLen(&Q1);
printf("%d",i);
}