队列

队列:一个有序列表,可以通过数组或者链表来实现。

队列存取数据的原则为:先进先出,添加数据从尾部添加,取出数据从头部取出

用数组模拟普通队列:

  设计两个指针:front 指向队列的头部元素的前一个位置(-1)

         rear指向队列的最后一个位置(-1)

队列为空的条件是:front == rear 

队列为满的条件是:rear == array.length - 1

  目前数组只能使用一次,没有达到复用的效果,将其改进为循环队列

 

用数组模拟循环队列:

   设计两个指针:front 指向队列的第一个位置(0)

             rear指向队列的最后一个位置的后一个位置(0):将rear改为指向最后一个位置的后一个位置,是为了空出一个位置作为约定(为了将判断队列满的条件和队列空的条件区分)

循环队列空的条件为:rear == front

循环队列满的条件为:(rear + 1)% maxSize  == front

队列中元素的个数为: (rear + maxSize - front)% maxSize

posted @ 2022-04-08 22:42  黑山魁七  阅读(122)  评论(0)    收藏  举报