Heap-Create(n-max) H := new Heap H.S := new array of length n-max H.len := 0 return H Heap-FindMax(H) if H.len==0 then ERROR return FindMax(H.S, H.len) Heap-Insert(H,a) H.S[len++] := a Heap-Delete(H,i) if i out of range then ERROR H.S[i] := a[len--] // works even for 1 element heaps