以下类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)