A heap is a binary tree satisfying the following conditions: This tree is completely balanced. If the height of this binary tree is h, then leaves can be at level h or level h-1. All leaves at level h are as far to the left as possible. The data associated with all descendants of a node are smaller than the datum associated with this node.