队列中的循环数组

Jon*_*ony 0 java queue data-structures

mod如何用于确定队列中循环数组的开头和结尾?

Jon*_*eet 9

好吧,通常你会跟踪第一个元素的索引和当前大小.如果大小等于数组的大小,则表示数组已满.排队新项目然后需要您增长数组.否则,你只需要写入元素(start + size + 1) % array_size.

当你使一个元素出列时,只需取出该元素start,用null覆盖它以允许垃圾收集,减量size和增量start,必要时包装为0.

要保持跟踪的替代start,并size为跟踪startnext-在next将要进入队列的下一个元素的索引.你发现阵列是否已满start == next.然后入队(当不满时)只需要你改变next,而出列只需要你改变start.和以前一样,你需要在递增或递减start/ 时换行next.