在看队列的一些东西,循环队列中,队尾下标为什么是队尾指针加一后除以数组的大小取模呢?请高手指点一下,谢谢

解决方案 »

  1.   

    拿数组模拟的队列,数组最后一个元素下标是length-1.
    而下一个要加入队列的位置是数组下标0
    所以你要+1再对length取模.如果不是数组最后一个元素,那就相当于下一个要加入队列的位置是队尾+1
      

  2.   

    为什么要取模呢?比如要得到队列的大小,队尾--rear,队首--front,数组大小--capacity.
    (rear-front+capacity)%capacity 与 rear-front 的值不是一样的吗?为什么不用后者呢?
      

  3.   

    (rear-front+capacity)%capacity 与 rear-front你确定这两个值是一样的????
    再好好看看数据结构。
      

  4.   

    能讲一下吗?
    (3-0+4)%4 = 3, 3-0 = 3;
    (5-3+5)%5 = 2, 5-3 = 2;
    数组大小肯定比队尾或队首大,(rear-front+capacity)是capacity的一倍多(rear-front),当取模时为什么不等于(rear-front)呢?我还是很迷。