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