A Heap is a binary tree with two special properties
This is very different than a binary search tree!
Note that this property makes no distinction between `left' and `right'. All the following trees have this property:
Incidentally, heaps can also be defined with the opposite ordering property: the value in each node is larger than all the values in its subtrees.
A level is full if there are no `missing nodes' at the level - there are 2**L nodes in level L.
This structural property could be rephrased: the only nodes that can have an empty subtree are ones in the bottom level (by definition these have 2 empty subtrees) and the rightmost nodes in the next-to-bottom level.
A tree that has this property is called a complete tree. There are two motives for restricting ourselves to complete trees:
Answer: The middle one - that is the only one of those trees that is a heap.
Is this a heap?
It looks pretty disorganized: the smallest value must always be in the root, but the largest value could be in any leaf! Similar values are not collected together in any convenient location. Note that 25 is at a lower level than 30 (but, of course, not in 30's subtrees). However, there is more structure than immediately meets the eye.