Priority Queue, Unsorted Array


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