#include <iostream>
using namespace std;
typedef struct QNode
{
int data;
struct QNode * next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
bool init(LinkQueue & L)
{
L.front = L.rear = (QueuePtr)malloc(sizeof(QNode));
if (!L.front) return false;
L.front->next = NULL;
return true;
}
bool destroy(LinkQueue & L)
{
while (L.front)
{
L.rear = L.front->next;
free(L.front);
L.front = L.rear;
}
return true;
}
bool EnQueue(LinkQueue & L, int item)
{
QueuePtr p = (QNode *)malloc(sizeof(QNode));
if (!p) return false;
p->data = item;
p->next = NULL;
L.rear->next = p;
L.rear = p;
return true;
}
bool DeQueue(LinkQueue & L, int & item)
{
if (L.rear == L.front) return false;
QueuePtr p = L.front->next;
item = p->data;
if (p = L.rear)
{
L.rear = L.front;
}
L.front->next = L.front->next->next;
free(p);
return true;
}
很懒
浙公网安备 33010602011771号