声明
#ifndef QUEUE_H_INCLUDED
#define QUEUE_H_INCLUDED
typedef int ElementType;
struct QueueRecord
{
int Capacity;
int Front;
int Rear;
int Size;
ElementType *Array;
};
struct QueueRecord;
typedef struct QueueRecord *Queue;
#endif
测试队列是否为空
int IsEmpty(Queue Q)
{
return (Q->size == 0);
}
构造空队列
void MakeEmpty(Queue Q)
{
Q->size = 0;
Q->Front = 1;
Q->Rear = 0;
}
入队
static int Succ(int Value, Queue Q)
{
if(++Value == Q->Capacity)
Value = 0;
return Value;
}
void Enqueue(ElementType X, Queue Q)
{
if(IsFull(Q))
Error("Full queue");
else
{
Q->size++;
Q->Rear = Succ(Q->Rear, Q);
Q->Array[Q->Rear] = X;
}
}