定义:
#define maxsize n
typedef struct {
elemtype elem[maxsize];
int front;
int rear;
} cqueuetp;
循环队列的基本操作
1.队列的初始化操作
void init_cqueue(cqueuetp cq)
{
cq.front = 0;
cq.rear = 0;
}
2.判队空函数
int empty_cqueue(cqueuetp cq)
{
return cq.rear == cq.front ? 1 : 0;
}
3.求队列长度函数
int size_cqueue(cqueuetp cq)
{
return (maxsize + cq.rear - cq.front) % maxsize;
}
4.读队头元素函数
elemtype head_cqueue(cqueuetp cq)
{
if( cq.front == cq.rear)
return NULL;
else
return cq.elem[(cq.front + 1) % maxsize];
}
5.入队列操作
void en_cqueue(cqueuetp cq, elemtype x)
{
if((cq.rear + 1)%maxsize == cq.front)
printf("overflow");
else {
cq.rear = (cq.rear + 1)%maxsize;
cq.elem[cq.rear] = x;
}
}
6.出队列函数
elemtype dl_cqueue(cqueuetp cq)
{
if(cq.front == cq.rear)
return NULL;
else {
cq.front = (cq.front + 1) % maxsize;
return cq.elem[cq.front];
}
}