q->front=(q->front+1)%max

判定循环队列满的条件为什么不是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是不是同一个位置
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜