9. Приоритетна опашка - втора част

Структура от данни хип
Реализация на приоритетна опашка с хип
Представяне на хип с вектор
Вмъкване на елемент в хипа
Премахване на елемент от хипа
C++ реализация
Сортиране с хип


Структура от данни хип

Твърдение: Хип T съдържащ n ключа има височина h = [log(n + 1)].
Доказателство: (прилагаме свойството пълно двоично дърво)




Реализация на приоритетна опашка с хип

 

Представяне на хип с вектор


Вмъкване




"Бълбукане нагоре" след вмъкване




Премахване


"Бълбукане надолу" след премахване



Анализ

Function
Time
size(), isEmpty()
O(1)
minElement(), minKey()
O(1)
insertItem(k,e)
O(log n)
removeMin()
O(log n)

C++ реализация

Интарфейс на класа HeapTrеe  html-7.7 (HeapTree) с използване на йерархията на интерфейса за двоично дърво АДТ.

html-7.8 (HPQ1)
html-7.9 (HPQ2)

VisoAlgo

Heap Visualization


Сортиране с хип

HeapSort