Очереди с приоритетами можно реализовать с помощью кучи. Обычная очередь представляет собой структуру данных в порядке очереди. Элементы добавляются в конец очереди и удаляются из начала. В очереди приоритетов элементам присваиваются приоритеты. При доступе к элементам первым удаляется элемент с наивысшим приоритетом. Например, отделение неотложной помощи в больнице присваивает пациентам приоритетные номера; в первую очередь лечат пациента с наивысшим приоритетом.
Очередь с приоритетом может быть реализована с использованием кучи, в которой корнем является объект с наивысшим приоритетом в очереди. Кучи были представлены в пирамидальной сортировке. Диаграмма классов для приоритетной очереди показана на рисунке ниже. Его реализация приведена в коде ниже.
В коде ниже приведен пример использования очереди с приоритетом для пациентов. Класс Пациент определен в строках 21–38. Создаются четыре пациента с соответствующими значениями приоритета в строках 6–9. Строка 8 создает приоритетную очередь. Пациенты располагаются в очереди 12–15. Строка 18 удаляет пациента из очереди.
Синди(приоритет:7) Тим(приоритет:5) Джон(приоритет:2) Джим(приоритет:1)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3