Изменения

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

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

26 байт убрано, 21:36, 7 июня 2012
merge
<code>
Node merge(H1, H2) {
if (H1 == null) {
return H2;
} if (H2 == null) {
return H1;
}
// H - результат слияния
H.head = null;
curH1 = H1.head;
curH2 = H2.head;
while curH1 != null && curH2 != null { if (curH1.degree < curH2.degree) {
curH.sibling = curH1;
curH = curH1;
curH2 = curH2.sibling;
}
}
if (curH1 == null) {
while curH2 != null {
curH.sibling = curH2;
curH1 = curH1.sibling;
}
}
// объединение деревьев одной степени
curH = H.head;
while curH.sibling != null {
if curH.degree == curH.sibling.degree {
p[curH] = curH.sibling;
}
curH = curH.sibling;
}
return H;
}
Анонимный участник

Навигация