数据结构:
struct Queue
{
DataType sequ[m];
int rear,quelen;
};
typedef struct Queue * PQueue;
思路:入队列和出队列的算法和普通队列的思路近似,只是原来用两指针指向只差来表示队列中元素的个数,现在直接用quelen来表达。
程序代码:
PQueue createEmptyQueue() //创建空队列
{
PQueue pqu = (PQueue)malloc(sizeof(struct Queue));
pqu->rear = 0;
pqu->quelen = 0;
}
void enQueue(PQueue pqu,DataType x) //入队列
{
if(pqu->quelen== m)
{
printf("Overflow!\n");
return;
}
pqu->sequ[pqu->rear] = x;
pqu->rear = (pqu0>rear+1)%m;
pqueue->quelen++;
}
DataType deQueue(PQueue pqu) //队头元素出队列
{
int front = (pqu->rear - pqu->quelen)%m;
pqu->quelen--;
return pqu->sequ[front];
}