早教吧 育儿知识 作业答案 考试题库 百科 知识分享

判定循环队列满的条件为什么不是q->front==q->rear+1而是q->front==(q->rear+1)%maxsize?

题目详情
判定循环队列满的条件为什么不是q->front==q->rear+1而是q->front==(q->rear+1)%maxsize?
▼优质解答
答案和解析
因为是循环队列,循环队列的思想是如果队头有空余的位置,则可以把数据插入到队头,从而是一个圈
q->front==q->rear+1明显是一个判定条件,判定当前队列是否已满,当当前队列q->front正好为0,q->rear为(maxsize-1,即整个队列的最后一个),q->rear+1就溢出了,(q->rear+1)%maxsize正好就是0,从而可以判断front和rear+1是不是同一个位置
看了判定循环队列满的条件为什么不是...的网友还看了以下: