队列的基本运算
#include<iostream>
#include<malloc.h>
#define MaxSize 50
typedef struct
{
int data[MaxSize];
int front, rear;
} SqQueue;
void InitQueue(SqQueue *&q);
void DestoryQueue(SqQueue *&q);
bool QueueEmpty(SqQueue q);
bool enQueue(SqQueue *&q, int e);
bool deQueue(SqQueue *&q, int &e);
void InitQueue(SqQueue *&q)
{
q = (SqQueue*)malloc(sizeof(SqQueue));
q->front = q->rear = -1;
}
void DestoryQueue(SqQueue *&q)
{
free(q);
}
bool QueueEmpty(SqQueue q)
{
if (q.front == q.rear) return true;
else
return false;
}
bool enQueue(SqQueue *&q, int e)
{
if (q->rear == N - 1)
return false;
q->rear++;
q->data[q->rear] = e;
return true;
}
bool deQueue(SqQueue *&q, int &e)
{
if (q->rear == q->front)
return false;
q->front++;
e = q->data[q->front];
return true;
}