循环队列
#define MAXSIZE 10
struct queue{
int rear;
int front;
int a[MAXSIZE];
}q;
队列的初始化
void initQueue(queue &q){
q.front=0
q.rear=0
}
得到队列的长度
int getQueueLength(queue &q){
return ((q.rear-q.front+MAXSIZE)%MAXSIZE);
}
入队操作
void push(queue &q,int x){
q.a[q.rear]=x;
q.rear=(q.rear+1)%MAXSIZE;
}
出队操作
void pop(queue &q){
q.front=(q.front+1)%MAXSIZE;
}
获取队头元素
int getHead(queue &q){
return q.a[q.front];
}
获取队尾元素
int getTail(queue &q){
return q.a[q.rear-1];
}
判断队列是否为满
bool isFull(queue &q){
if((q.rear+1)%MAXSIZE==q.front) return 1;
else return 0;
}
判断队列是否为空
bool isEmpty(queue &q){
if(q.front==q.rear) return 1;
else return 0;
}