已知循环队列的存储空间为数组A[21],且头指针和尾指针分别为8和3,则该队列的当前长度为?
这个问题用这个公式不对吧(rear-front+maxSize)%maxSize?实际我画出来是17个长度,答案以及这个公式算出来就是16个,不光这个问题我感觉不对,当rear在front上面时这个公式是对的,当rear在front下面时这个公式算出来的长度就少一个,为什么?考试时我到底该怎么判断?
maxSize+rear-front
21+3 -8 = 16
从头结点开始数,一直数到尾巴结点(如果到来21 就回到0) 9 10 11 12 13 14 15 16 17 18 19 20 0 1 2 3 头结点执向的地方是空。(实现的时候也可以是尾结点指向是空) 所以16个。