以下类Pascal程序为:自堆顶至叶子调整建新堆的过程
PROC ABC(var rlisttype; k,m:integer);
{假设r[k+1.. m]中各元素满足堆的性质,本算法调整r[k]使整个序列r[k.. m]中各元素满足堆的性质}
begin
i=k; j==2*i; x:=r[k].key;
finished: false;
t=r[k]; {暂存“根”记录r[k]}
while (j<=m) and not finished do
begin
if
(j<m) and (r[j].key)> r[j+1].key) then (1)
if x<=r[j].key
then (2)
else begin
(3) ; (4) ; (5) ;
end
end;
(6) 