Binary trees are the ones typically used for our purposes. A binary tree is a tree where every node has at most two children. This is not a formal definition, since we haven't said formally what a tree is. We can define binary trees ``inductively'' via the following rules.
Definition.A binary tree is either
Rule 1 is called the ``base case'' and Rule 2 is called the ``induction step''. This definition may seem circular, but it actually isn't. You can imagine that the (infinite) collection of (finite) trees is created in a sequence of days. Day 0 is when you ``get off the ground''. You declare an empty tree to exist by fiat, using Rule 1. At any other day, you are allowed to use the trees that you have created in the previous days, using Rule 1, in order to construct new trees. Thus, for example, at day 1 you can create exact the trees that have a root but no children (i.e. both the left and right subtrees are the empty tree, created at day 1). At day 2 you can use the empty tree and the one-node tree, to create more trees. (Question: what trees are created at day 2. How about day 3? As another exercise, consider how you would prove that the tree in the picture above is in fact a binary tree. At which day was it created?) Thus, the binary trees are the objects created by the above two rules in a finite number of steps. The height of a tree, defined below, is the number of days it takes to create it using the above two rules, where we assume that only one rule is used per day, as we have just discussed.