A binary tree is a tree such that a parent can have at most two children. In other words, for a tree represented by (N,P),
∀n ∈ N : ≤ 2.
In many cases, it is important to differentiate the two children of a node. If this differentiation is necesary, we modify the representation of a general tree so that a binary tree is represented by a tuple (N,PL,PR), in which (a,b) ∈ PL means that b is the left child of a, and (a,b) ∈ PR means that b is the right child of a.
We need to redefine what a subtree is. Let T((N,PL,PR),n) be a subtree of (N,PL,PR) rooted at node n. Then T((N,PL,PR),n) = (N′,PL′,PR′), and
Binary trees are special because they are the “smallest” trees. If a parent can have at most one child, then a tree degenerates to a linked list. In addition, a binary tree is very well suited to represent decision making, assuming each decision only has up to two alternative actions.
Last, but not least, many operators (multiply, divide and etc.) require up to two operands. This means a binary tree can also be used to represent operators and operands in an expression.