## Binary trees

Generally speaking, each node in a basic tree can contain any number of children. However, in the case of **binary trees**, a node cannot contain more than two children. It means that it can contain zero, one, or two child nodes. Such a requirement has an important impact on the shape of a binary tree, as shown in the following two diagrams presenting binary trees:

As already mentioned, a node in a binary tree can contain at most two children. For this reason, they are referred to as the **left child** and **right child**. In the case of the binary tree shown on the left-hand side of the preceding diagram, node **21** has two children, **68** as the left child and **12** as the right child, while node **100** has only a left child.

Have you thought about how you can iterate through all the nodes in a tree? How can you specify an order of nodes during **traversal** of a tree? There are three common approaches: pre-order, in-order, and post-order, as shown in the following diagram:

As you can see in the diagram...