Так как это круговая очередь, как только задняя часть очереди достигает конца массива, если вы добавляете другой элемент, он должен быть добавлен в начале массива.
Действительные индексымассив от 0
до SIZE - 1
(при условии SIZE == Q.length
).
Следовательно, после добавления элемента в Q[back == SIZE-1]
задняя часть очереди должна стать (back+1) % SIZE == (SIZE-1+1) % SIZE == 0
.
PS Я не уверен, что вы включили полный код метода enqueue
.Похоже, вы не проверяете, заполнена ли очередь, прежде чем добавлять новый элемент.