队列
队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。
front: 指向队列头的前一个元素,初始值front=-1。
rear:指向队列尾,即 queue[rear] 就是队列的最后一个数据,初始值rear=-1。
1.将尾指针往后移:rear+1 ,队列为空的条件:front == rear 。
2.若尾指针 rear 小于队列的最大下标 maxsize-1,则将数据存入 rear所指的数组元素中,否则无法存入数据。 队列为满的条件:rear == maxsize - 1。(maxsize为数组长度)
环形队列
front: 指向队列的第一个元素,即 queue[front] 就是队列的第一个数据,初始值front=0。
rear:指向队列的最后一个元素的后一个空间,初始值rear=0。
1.队列为空的条件:rear == front 。
2.尾索引的下一个为头索引时表示队列满,即将队列容量空出一个作为约定。队列为满的条件:(rear + 1) % maxSize == front 。
3.队列的有效数据个数:(rear-front+maxsize)%maxsize。