关于链队---什么问题啊
以下是关于链队的代码,请看:#include"stdio.h"
#include"malloc.h"
#define NULL 0
typedef struct QN //链队结点定义
{
int data;
struct QN *next;
}QT;
typedef struct qptr //链队指针
{
QT *front,*rear;
}LQ;
void Init(LQ *&lq) //初始化链队
{
lq->rear=lq->front=NULL;
}
void Enq(LQ *&lq,int x) //元素x入队
{
QT *s;
s=(QT *)malloc(sizeof(QT));
s->data=x;s->next=NULL;
if(lq->front==NULL&&lq->rear==NULL)
lq->rear=lq->front=s;
else
{
lq->rear->next=s;
lq->rear=s;
}
}
int Geth(LQ *lq,int &x) //取队头元素值并赋给x
{
if(lq->front==NULL&&lq->rear==NULL)
return 0;
x=lq->front->data;
return 1;
}
int Qemt(LQ *lq) //判断队是否空
{
if(lq->front==NULL&&lq->rear==NULL)
return 1;
else
return 0;
}
void main()
{
LQ *p;
Init(p);
printf("%d\n",Qemt(p));
Enq(p,1);
printf("%d\n",Qemt(p));
int q;
Geth(p,q);
printf("%d\n",q);
}
主函数的过程是这样的:
定义链队指针p;初始化链队;输出判断空否的返回值;值为1的元素进队;输出判断空否的返回值;取队首元素并输出.
运行时出现问题,说遇到问题需要关闭,请各位帮忙看下.