Освободившееся место


Освободившееся место сына займет его сын или последний элемент, и так далее. После таких преобразований внутри кучи не должно остаться "свободных" мест. Последовательность действий после удаления минимального элемента из бинарной кучи, изображенной на рис 7, изображена на рис 8. и рис 9. Стрелками или дугами показаны "претенденты" на "свободное" место. Функция удаления минимального элемента из бинарной кучи может быть реализована следующим образом. S[0]: = 0; for i:= 1 to N do {1. 1} S[i]: = S[i - 1] + a[i]; Type Queue=array[1.. maxqueue] of real; procedure insert(x:integer; var H: array [0..n] of integer; var Num:integer; var code:integer;); var i; begin if Num=n then code:=1 else begin Num:=Num+1; i:=Num; H[0]:=x; {барьер} while (x < H[i div 2]) do begin H[i]:=H[i div 2]; i:=i div 2; end; {while} H[i]:=x; code:=0; end; {if} end; {insert} function delete_min(var H: array [0..n] of integer;
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz