Объяснение следующего ожидаемого результата циклической очереди

#data-structures #circular-queue

#структуры данных #циклическая очередь

Вопрос:

Я пытаюсь создать циклическую очередь и сталкиваюсь с этой проблемой.введите описание изображения здесь

Как вы видите, мой ответ неверен. Я все еще не понимаю, почему это так, поэтому давайте пройдемся по всему еще раз.

  1. Создайте циклическую очередь размером 2
  2. Очередь 8, текущая очередь: 8
  3. Очередь 8, текущая очередь: 8, 8
  4. Фронт: 8 (никаких изменений в очереди)
  5. Очередь 4, текущая очередь: 4, 8
  6. Удаление из очереди, текущая очередь: 8
  7. Очередь 1, текущая очередь: 8, 1
  8. Очередь 1, текущая очередь: 1, 1
  9. Rear: 1 (никаких изменений в очереди)
  10. Пусто: false (никаких изменений в очереди)
  11. Фронт: 1 (никаких изменений в очереди)
  12. Удаление из очереди, текущая очередь: 1

После моего анализа последняя Front операция должна возвращать 1 в качестве очереди 1, 1 . Однако вместо этого ответ равен 8. Я что-то пропустил? Пожалуйста, объясните это для меня.

Ответ №1:

Понял это. Перед постановкой в очередь необходимо проверить, заполнена ли очередь. Однако я этого не сделал, поскольку думал, что циклическая очередь — это форма бесконечных DS, подобных стеку выпадения, поэтому мой ответ неверен.