Изменения

Перейти к: навигация, поиск

Фибоначчиева куча

1 байт добавлено, 04:10, 25 октября 2021
Соедининение двух куч
</code>
==== Соедининение двух куч ====
Для сливание сливания двух Фибоначчиевых куч необходимо просто объединить их корневые списки, а также обновить минимум новой кучи, если понадобится. Вынесем в вспомогательную функцию <tex>unionLists</tex> логику, объединяющую  два списка вершины, которых подаются ей в качестве аргументов.
<code style="display:inline-block">
'''function''' unionLists(first: '''Node''', second: '''Node'''):
min = that.min
</code>
 
==== Удаление минимального элемента====
Первая рассматриваемая операция, в ходе которой значительно меняется структура кучи. Здесь используется вспомогательная процедура <tex>consolidate</tex>, благодаря которой собственно и достигается желанная амортизированная оценка. В данном случае <tex> min = \varnothing</tex> не рассматривается и считается нарушением предусловий <tex>deleteMin</tex>
Анонимный участник

Навигация