Trees in General
A Tree T is a set (possibly empty) of nodes, and a binary relation on this set called hasChild, such that there is a designated node called the root, and every node is reachable from the root by exactly one path of links in this relation.
Alternatively we can define (as in Sahni):
A tree t is a finite nonempty set of elements. One of these elements is called the root, and the remaining elements (if any) are partitioned into trees, which are called the subtrees of t.