队列调试的问题
#include"stdio.h"#include"stdlib.h"
#include"malloc.h"
typedef struct node
{
char c;
struct node *next;
}qnode,*basic_node;
typedef struct
{
qnode *head;
qnode *rear;
}queue,*Q;
main()
{
Q q;
basic_node p,l;
char ch;
int choice;
q=(Q)malloc(sizeof(queue));
q->head=NULL;
q->rear=NULL;
printf("输入队列元素:\n");
scanf("%c",&ch);
getchar();
while(ch!='!')
{
p=(qnode *)malloc(sizeof(qnode));
p->c=ch;
p->next=NULL;
if(q->head!=NULL)
{
q->head=p;
l=q->head;
}
l->next=p;
l=p;
q->rear=p;
scanf("%c",ch);
getchar();
}
l=q->head;
while(l!=NULL)
{
printf("%c--<",l->c);
l=l->next;
}
printf("\n");
printf("头指针指向元素为%c\尾指针指向的元素为%c\n",q->head->c,q->rear->c);
getch();
}
编译通过,但是运行的时候,有问题,大家帮个忙看下,谢谢了!!