定义
将存储队列元素的表从逻辑上视作一个环,称之为循环队列
各项指针
初始时:Q.front=Q.rear=0
队首指针进1:Q.front=(Q.front+1)%MaxSize
队尾指针进1:Q.rear=(Q.rear+1)%MaxSize;
队列长度:(Q.rear+MaxSize-Q.front)%MaxSize
重点:判空条件(三种方法)
牺牲一个单元来区分队空还是队满
增设一个size变量进行数量统计,如果size==MaxSize删除元素
增设tag数据成员,用来区分呢队满还是对空,在插入和删除时要变更tag的值
//当tag=0时,若是由于删除导致Q.front=Q,rear,则说明队空
Q.front==Q.rear&&Q.tag==0 //队空
//当tag=1时,若是由于插入导致Q.front=Q.rear,则说明队满
Q.front==Q.rear&&Q.tag==1 //队满