Наиболее распространенной реализацией очереди приоритетов является двоичная куча , которая не выиграет от обтекания.Вы можете создать очередь с приоритетами, которая реализована в циклическом буфере, но производительность может снизиться.
Важно помнить, что очередь с приоритетами является абстрактной структурой данных.Он определяет операции, но не реализацию.Вы можете реализовать приоритетную очередь в виде двоичной кучи, отсортированного массива, несортированного массива, двоичного дерева, списка пропусков, связанного списка и т. Д. Существует множество различных способов реализации приоритетной очереди.
ДвоичныйКуча, с другой стороны, является специфической реализацией абстрактного типа данных очереди с приоритетами.
Что касается стека и очереди: в действительности, стеки и очереди являются просто специализациями очереди с приоритетами.Если вы считаете время приоритетом, то то, что мы называем очередью (структура данных FIFO), на самом деле является очередью приоритетов, в которой самый старый элемент имеет наивысший приоритет.Стек (структура данных LIFO) является очередью приоритетов, в которой самый новый элемент имеет наивысший приоритет.