C语言链表实现队列问题
我想问一下为什么没有输出啊???? 不知道我的display()错误出现在哪里,求指教#include "stdafx.h"
#include <iostream>
using namespace std;
#include <stdlib.h>
typedef struct qnode
{
int data;
struct qnode *next;
}QNODE;
typedef struct
{
QNODE *front;
QNODE *rear;
}LIqueue;
void init(LIqueue *&q)
{
q=new LIqueue();
q->front=q->rear=NULL;
}
bool empty(LIqueue *q)
{
if(q->rear==NULL)
return true;
else
return false;
}
void Enter(LIqueue *&q,int e)
{
QNODE *p;
p=new QNODE();
p->data=e;
p->next=NULL;
if (q->rear==NULL)
q->front=q->rear=p;
else
{
q->rear->next=p;
q->rear=p;
}
}
bool out(LIqueue *&q,int &e)
{
QNODE *t;
if (q->rear==NULL)
return false;
else
t=q->front;
if (q->front==q->rear)
q->front=q->rear=NULL;
else
q->front=q->rear->next;
e=t->data;
free(t);
return true;
}
void display(LIqueue *q)
{
QNODE *p=new QNODE();
p=q->front->next;
if (p!=NULL)
{
cout<<p->data<<"\t";
p=p->next;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
LIqueue *q;
init(q);
Enter(q,8);
display(q);
system("pause");
return 0;
}