Как мода используется для определения начала и конца кругового массива в очереди?Циркулярные массивы в очередях
ответ
Ну, обычно вы отслеживаете индекс первого элемента и текущий размер. Если размер равен размеру массива, это означает, что массив заполнен. Приобретая новый элемент, вам требуется увеличить массив. В противном случае вы просто пишете элемент (start + size + 1) % array_size
.
Когда вы Dequeue элемент, вы просто элемент в start
, перезаписать его с нулевым, чтобы для сбора мусора, уменьшаем size
, и приращение start
, упаковка 0, если это необходимо.
Альтернатива отслеживания start
и size
, чтобы следить за start
и next
- где next
является индексом следующего элемента, который будет поставлен в очередь. Вы видите, если массив заполнен, когда start == next
. Затем enqueuing (если не заполнен) требует только изменения next
, а для dequeuing требуется только изменить start
. Как и раньше, вам нужно обернуть, когда вы увеличиваете или уменьшаете start
/next
.
В круговом массиве задняя часть очереди (front + number_of_elements_in_queue - 1) mod size_of_queue
, и перед каждой очередью следует отслеживать каждую очередность.
Это может помочь взглянуть на функцию wrapIndex по строке 28 в this example. wrapIndex (head) - начало (см. строку 93), а wrapIndex (tail) - это конец (см. строку 76).
- 1. Как хранить массивы в очередях?
- 2. Циркулярные зависимости
- 3. Предоставление сущностей в очередях?
- 4. Тема в 2 очередях
- 5. Циркулярные ссылки в Java
- 6. Циркулярные списки в C#
- 7. Циркулярные зависимости в 3NF
- 8. Циркулярные списки в Racket
- 9. Циркулярные карты в haskell
- 10. Циркулярные определения в yaml
- 11. Заблуждения о очередях Laravel
- 12. Циркулярные зависимости в макете android
- 13. Циркулярные зависимости в ES6/7
- 14. Циркулярные зависимости в машинописном тексте
- 15. Циркулярные отношения в управлении студентами
- 16. Циркулярные вкладки/Навигация в Bootstrap
- 17. Циркулярные номера IDENTITY в столбце
- 18. C++ Циркулярные зависимости
- 19. Резолюция Циркулярные ссылки (C#)
- 20. Циркулярные зависимости между DLL
- 21. Automapper v5.1.1 - Циркулярные ссылки
- 22. Циркулярные ссылки Пример
- 23. Циркулярные генераторы, висящие неопределенно
- 24. Циркулярные зависимости деклараций
- 25. Циркулярные зависимости для XML
- 26. Нужны ли циркулярные ссылки?
- 27. Резолюция Циркулярные зависимости Java
- 28. Работа в очередях в рубине на рельсах
- 29. LINQ to SQL: Циркулярные запросы
- 30. Циркулярные ссылки и проблемы ScriptIgnore
Вы, кажется, ссылаетесь на несколько муз. Вы связаны с ним? –