Освободившееся место
Освободившееся место сына займет его сын или последний элемент, и так далее. После таких преобразований внутри кучи не должно остаться "свободных" мест.
Последовательность действий после удаления минимального элемента из бинарной кучи, изображенной на рис 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;
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа