Изменения

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

Биномиальная куча

1386 байт добавлено, 23:54, 13 марта 2011
Нет описания правки
=== Union ===
Эта операция, соединяющая две биномиальные кучи в одну, используется в качестве подпрограммы большинством остальных операций.
Процедура Binomial_Heap_Union многократно связывает биномиальные деревья с корнями одинаковой степени. Приведенная далее процедура связывает дерево <tex>B_k</tex> с корнем y с деревом <tex>B_{k-1}</tex> с корнем z, делая z родительским узлом для y, после чего узел z становится корнем дерева <tex>B_k</tex>.
<code>
Binomial_Link(y, z)
p[y] = z
sibling[y] = child[z]
child[z] = y
degree[z]++
</code>
 
Приведенная далее процедура сливает биномиальные кучи <tex>H_1 и H_2</tex>, возвращая получаемую в результате биномиальную прирамиду. <tex>H_1 и H_2</tex> удаляются. Процедура Binomial_Heap_Merge сливает списки корней <tex>H_1 и H_2</tex> в единый связный список, отсортированный по степеням в монотонно возрастающем порядке.
Анонимный участник

Навигация