Изменения

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

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

169 байт добавлено, 01:44, 6 марта 2012
extractMin
<code>
Node extractMin(H){ //поиск корня х с минимальным значением ключа в списке корней Н, и удаление х из корней Н min = <tex>\infty</tex>; x = null; curx = head[H]; while curx <tex>\ne</tex> null { if curx.key < min { min = curx.key; x = curx; } curx = curx.next; } x.prev.next = x.next; x.next.prev = x.prev; //добавление детей элемента x в кучу. H' = makeBinomialHeap(); Обращение порядка связанного списка дочерних узлов х, curx = x.child; установка поля р каждого дочернего узла Н равным NILwhile curx <tex>\ne</tex> null { p[curx] = null; присвоение указателю head[H'] адреса заголовка = curx; получающегося списка H = merge(H, H'); curx = curx.sibling; } return x; } 
</code>
333
правки

Навигация