数据结构-队列实现的问题
感觉结构混乱的很,没有算法那么清晰,帮忙看看。多谢!!//#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//using namespace std;
typedef int QElemType;
typedef struct QNode{
QElemType data;
struct QNode *next;
}Queue,*QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//===========初始化队列
void InitQueue(LinkQueue &Q)
{
Q.front=Q.rear = (QueuePtr)malloc(sizeof(QNode));
if(!Q.front)//////
exit(1);
Q.front.next=NULL;
}
//==============入队列
void EnQueue(LinkQueue &Q,QElemType e)
{
p=(QueuePtr ) malloc (sizeof(QNode));//==========error
if(!p)
{
//cout<<"内存不足!\n";
exit(1);
}
p.data=e;
p.next=NULL;
Q.rear.next=p;
Q.rear=p;
}
//==============出队列
void DeQueue(LinkQueue &Q,QElemType &e)
{
if(Q.front==Q.rear)
exit(1);
p=Q.front.next;
e=p.data;
Q.front.next=p.next;
if(Q.rear==p)
Q.rear=Q.front;
free(p);
}
//===============销毁队列
void DestroyQueue(LinkQueue &Q)
{
while(Q.front)
{
Q.rear=Q.front.next;
free(Q.front);
Q.front=Q.rear;
}
}
int main()
{
//
}