Transform the elements into a binary tree, and you’ll see that the value of each node is less than or
equal to its parent node (Figure 11.1). Both push_heap() and pop_heap() change the elements
so that the invariant of this binary tree structure — each node not greater than its parent node —
remains stable.