Я показываю содержимое моей реализации очереди в Java. Несмотря на то, что работает обтекание (размер очереди равен 3), у меня возникают проблемы с отображением очереди, когда передняя часть очереди больше задней.
Вот код, который я использую для отображения:
System.out.println("front");
System.out.println("=====");
if(front < rear ) {
for(int i = front; i != rear; i++ ) {
System.out.println(i +":> " + queue[i]);
}
}
else {
for(int i = front; i != rear; i= (i + 1) % SIZE ) {
System.out.println(i +":> " + queue[i]);
}
}
System.out.println("=====");
Например, предположим, что фронт равен 1, тыл - 0 и SIZE = 3
.
Мой код распечатывает содержимое queue[1]
, queue[2]
в указанном порядке.
Почему это заканчивается, когда i == 2
? Не следует ли i= (i + 1) % SIZE
изменить значение i
на 0 и, таким образом, сделать его равным тылу, а затем распечатать значение queue[0]
?