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