循环队列求元素个数为什么为(rear-front+maxSize)%maxSize?
声明:文章思路来自*@if now*《数组实现环形队列-获取有效数据个数》
必须理解的辅助算法:
问题:怎么求x号盒子之前有多少个盒子?
解法:用x号减去最前面的盒子编号。
-------------------------------- 分界线-------------------------------------------
正文:
A:思路:上方元素+下方元素
B:步骤:
1.求出front盒子之前的盒子 (front)
2.用所有的盒子减去front之前的盒子求得上方所有的元素(maxsize-front)
3.在求出下方有元素的盒子 (rear)
4.加上第二步求出的上方盒子,及总元素。 (rear+maxsize-front)
C:结果:
(rear+maxsize-front)
D:步骤图: