Java中的部分对队列Queue是基于循环数组所构建的。Queue这种FIFO结构的时候被采用,它可以提高空间的利用率。
max_size,那么需要创建一个长度为max_size + 1的数组。因为队列中的状态共有0 ~ max_size总共max_size + 1种状态;rear为当前队列尾部元素在数组中的下标位置,而front为当前队列头部元素的逻辑上前一个位置的数组下标,存储队列元素的数组下标范围是0 ~ max_size,则:
front = rear = 0;(rear + 1) % (max_size + 1) == front;front == rear;rear = (rear + 1) % (max_size + 1),然后将新入队的元素添加到数组下标为rear处;front = (front + 1) % (max_size + 1),数组下标为front的元素将作为出队元素。
原文:https://www.cnblogs.com/phax2/p/14222791.html