一、队的概念
队列也是一种表,但是是一种受限的表,只允许从一端插入,另一端山粗的表。
二、队列的数组实现
#define QMAXSIZE 100typedef int Position;
typedef int QElement;typedef struct queue
{
QElement Els[QMAXSIZE];
Position head,tail;
}Queue;void QCreate(Queue &Q)
{
Q.head = Q.tail = ;
}void Enqueue(QElement e,Queue &Q)
{
if((Q.tail + ) % QMAXSIZE == Q.head)
{
printf("Queue Full");
}
else
{
Q.Els[Q.tail] = e;
Q.tail = (Q.tail + )% QMAXSIZE;
}
}void Dequeue(QElement &e,Queue &Q)
{
if(Q.head == Q.tail)
{
printf("Queue Empty");
}
else
{
e = Q.Els[Q.head];
Q.head = (Q.head + ) % QMAXSIZE;
}
}QElement Head(Queue Q)
{
if(Q.tail == Q.head )
{
printf("Queue Empty");
}
else
{
return Q.Els[Q.head];
}
}bool Empty(Queue Q)
{
return(Q.tail == Q.head );
}bool Full(Queue Q)
{
return((Q.tail + ) % QMAXSIZE == Q.head );
}