MaxSize是你的数组的大小,如果最后一个元素位置被使用后,要再存下一个元素,那么按循环队列的定义,应该是存到数组的开头,而对MaxSize取余则可以使得下标从MaxSize-1变为0,然后递增,达到循环的目的。
因为是循环队列,循环队列的思想是如果队头有空余的位置,则可以把数据插入到队头,从而是一个圈
q->front==q->rear+1明显是一个判定条件,判定当前队列是否已满,当当前队列q->front正好为0,q->rear为(maxsize-1,即整个队列的最后一个),q->rear+1就溢出了,(q->rear+1)%maxsize正好就是0,从而可以判断front和rear+1是不是同一个位置
当前队尾rear如果向队尾插入元素则
rear + 1
如果rear + 1 >= maxsize 那么 rear = (rear+1)%maxsize(循环队列)