队列介绍
- 队列是一个有序列表,可以用数组或是链表来实现;
- 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出;
-
示意图:(使用数组模拟队列示意图);
数组模拟队列思路
- 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图,其中maxSize是该队列的最大容量;
- 因为队列的输出、输入是分别从前后端来处理,因此需要两个变量front及rear分别记录队列前后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变;
- 当我们将数据存入队列时称为”addQueue”,addQueue的处理如下:
思路分析
- front 变量的含义:front 指向队列的第一个元素,也就是说arr[front]就是队列的第一个元素,front的初始值 = 0;
- rear 变量的含义:rear 指向队列的最后一个元素的后一个位置,希望空出一个空间做约定,rear 的初始值 = 0;
- 当队列满时,条件是(rear + 1)% maxSize == front ;
- 当队列为空时,条件是 rear == front ;
- 我们可以这样分析&#x