A binary heap is a binary tree that is
mapped onto an array. Because of the mapping that is used, links
between nodes are easily computed without storing them.
A heap has two fundamental properties:
- Structure Property: The heap is a complete
binary tree, meaning that all nodes are filled
except for the right-hand part of the bottom row.
- Heap Order Property: For any subtree of the heap,
the value at the root is less than the value of any of its
descendants. Since the minimum element is at the root,
it is easy to find.