почему плохая идея использовать массивы в качестве структуры данных в ограниченной очереди? - PullRequest
3 голосов
/ 09 марта 2011

Я думал о реализации ограниченных очередей (с фиксированной емкостью) с использованием массивов.Затем я наткнулся на эту статью вики о ограниченных очередях.В нем упоминалось:

Массив неэффективен из-за времени, затрачиваемого на копирование элементов в начало очереди

Я не совсем понял, как это так?Когда мы ставим в очередь или снимаем с очереди, мы просто обновляем индексы до головы или хвоста.Куда мы копируем элементы в начало очереди?

1 Ответ

6 голосов
/ 09 марта 2011

Копирование отсутствует - утверждение неверное. Если вы посмотрите историю статьи, у кого-то был код, который фактически переместил все элементы, но этот код был заменен версией, которую вы видите сейчас, и там было оставлено неверное утверждение. Также есть хотя бы одна ошибка в коде C ++. В enqueue () условие if(tail<head+QMAX) никогда не выполнится, поскольку с заданным хвостом кода никогда не будет больше или равно QMAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...