某循环队列Q定义中用front和rear两个整型域变量表示队列状态,其中front指示队头元素位置.rear指示队尾元素之后位置(如下图所示,front值为5、rear值为1)。若队列容量为M(下图中M=6),则计算队列长度通式为 () 。

队列是一种先进先出(FIFO)线性表,它只允许在表一端插入元素,而在表另一端删除元素。在队列中,允许插入元素一端称为队尾(rear),允许删除元素一端称为队头(front)。将元素存储在一维数组中队列假想成一个环状结构,称为循环队列。根据题中图示,当Q.rear-Q.front≥0时,队列长度就是Q.rear-Q.front;当Q.rear-Q.front大于0时,则队列元素个数为(Q.rear-Q.front+M)。故,队头元素位置应该为(Q.rear-Q.size+M)%M。









