Now for a forest of trees. Trees are likely the most varied of all data structures. There are specialized trees for applications in computer graphics, astrophysics, engineering, text processing, databases, and compression (just to name a few). Trying to categorize trees into a small number of bins is somewhat pointless but I'll describe some of the broader types. First some terminology. The top of the tree is the root. This is the only node in the tree which has no parents. The parent of a node is the node which is higher in the tree. A node will only ever have one parent. The children of a node are all the nodes which are connected and one step lower in the tree. An interior node is one which has both a parent and at least one child. A leaf node is one which has no children. The height of a tree is the distance from the root to the lowest child. The depth of a node is the distance from the root to that node. Now for s...