

create(), destroy(), … maintenance
operations.
add(data) and data remove() manipulation operations.
size(), empty(), data top(), … query
operations.
heap::create(T a[], unsigned n)
heap::create(heap h1, heap h2)
heap::merge(heap h)

i = count++ d[i] = e while i ≠ 0 p = (i - 1)/2 if d[p] ≥ d[i], break swap(d[p], d[i]) i = p |
|




heapsort(a[], n)
for i = 1 to n - 1
bubble-up(a, i)
for i = n - 1 to 1
swap(a[0], a[i])
bubble-down(i)
|
|