Кафедра ИТКафедра ИТ
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
GitHub
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
  • 04 — Куча (Heap min/max) и приоритетные очереди

04 — Куча (Heap min/max) и приоритетные очереди

Примечание

Раздел находится в процессе наполнения!

Куча (структура данных)

В компьютерных науках куча — это специализированная структура данных типа дерево, которая удовлетворяет свойству кучи: если B является узлом-потомком узла A, то ключ(A) ≥ ключ(B). Из этого следует, что элемент с наибольшим ключом всегда является корневым узлом кучи, поэтому иногда такие кучи называют max-кучами.

Репрезентация max-кучи
Репрезентация max-кучи

Кучи также можно представить в виде массива таким образом, что:

Репрезентация кучи в виде массива
Репрезентация кучи в виде массива

Если сравнение перевернуть, то наименьший элемент будет всегда корневым узлом, такие кучи называют min-кучами.

Репрезентация min-кучи
Репрезентация min-кучи

Не существует никаких ограничений относительно того, сколько узлов-потомков имеет каждый узел кучи. На практике их число обычно не более двух. Куча является максимально эффективной реализацией абстрактного типа данных, который называется очередью с приоритетом.

Узел на вершине кучи, у которого нет родителей, называется корневым узлом.

Очередь с приоритетом

Очередь с приоритетом (англ. priority queue) — абстрактный тип данных в информатике, для каждого элемента которого можно вычислить его приоритет.

В очереди с приоритетами элемент с высоким приоритетом обслуживается раньше элемента с низким приоритетом. Если два элемента имеют одинаковый приоритет, они обслуживаются в соответствии с их порядком в очереди.

Очередь с приоритетом поддерживает две обязательные операции — добавить элемент и извлечь максимум(минимум).

Хотя приоритетные очереди часто реализуются в виде куч(heaps), они концептуально отличаются от куч. Очередь приоритетов является абстрактной концепцией вроде «списка» или «карты»; так же, как список может быть реализован в виде связного списка или массива, так и очередь с приоритетом может быть реализована в виде кучи или множеством других методов, например в виде неупорядоченного массива.

Последнее обновление: 27.10.2025, 01:04
Предыдущая
05 — Деревья (BST, Trie) и графы (ориентированные/неориентированные, матрицы смежности)
© Кафедра информационных технологий ЧУВО «ВШП», 2025. Версия: 0.20.1
Материалы доступны в соответствии с лицензией: