Java数据结构——环形队列

介绍

对之前的数组模拟队列 的优化,充分利用数组。(将数组看作一个环形的圈)

通过取模运算实现

分析

1.尾索引rear的下一个为头索引front时表示队列满,即将队列容量maxSize空出一个作为约定这个再做再做判断队列满的时候需要注意

  (rear + 1)% maxSize == front

2.队列为空时 rear == front

3.示意图:

 

 

思路分析:

1.front变量的含义做一个调整:front指向队列的第一个元素,也就是说arr[front]就是队列的第一个元素

front初值值=0

2.rear变量的含义做一个调整:rear指向队列的最后一个元素的后一个位置,因为希望空出一个空间作为约定

rear初始值=0

3.当队列满时,条件是(rear +1)%maxSize = front  或者   rear+1=maxSize

4.当队列为空时,条件是rear = front

5.队列中有效数据个数是(rear +maxSize -front)%maxSize

如此,可在原来的队列上修改得到一个环形队列

posted @ 2021-11-15 21:32  風色  阅读(226)  评论(0)    收藏  举报