链队的进队操作,第31行一直报错,但是看不出哪里有问题
#include<stdio.h>
#include<malloc.h>
typedef char ElemType;
typedef struct
{
int rear;
int front;
}LinkQuNode;
typedef struct qnode
{
char data;
struct qnode *next;
}DataNode;
void InitQueue(LinkQuNode *&q)
{
q=(LinkQuNode *)malloc(sizeof(LinkQuNode));
q->front=q->rear=NULL;
}
bool QueueEmpty(LinkQuNode *q)
{
return(q->rear==NULL);
}
bool enQueue(LinkQuNode *&q,char e)
{
DataNode *s;
s=(DataNode *)malloc(sizeof(DataNode));
s->data=e;
s->next=NULL;
if(q->rear==NULL)
{
q->front=q->rear=s;
}
else
{
q->rear->next=s;
q->rear=s;
}
return true;
}
int main()
{
char a[5]={'a','b','c'};
LinkQuNode *q;
printf("1.初始化链队\n");
InitQueue(q);
QueueEmpty(q);
printf("2.链队是%s队",!QueueEmpty(q)?"非空":"空");
printf("3.依次输入abcfd");
for(int i=0;i<5;i++)
{
enQueue(s,a[i]);
}
}