A serial-heap of a maximum size n can be represented by an arraty WEAP[O..(n - l)], where nodes 2i + 1 and 2i + 2 iare, respectively, the left and the right children of node i. For heap to satisfy the (min) heap property, an item at a node should have a value no greater than those of the items at either of the children. A heap supports two operations - delete-min and insert. A delete-min entails deleting the item from the root. Since this action destroys the heap property at the root, a deletion is followed by a delete-update process, which is transferring the item from the last non-empty node (at, the bottom of the heap) to the root, and “sinking” that item down level by level until the heap property is satisfied. This item will be referred to as the “substitute item.” An insert operation is traditionally implemented by placing the newly inserted item at the first empty node at the bottom of the heap, and letting it float up toward the root until the heap property is satisfied.