TOPIC 17.3.1
Types of Tree
Structures
Many types of tree structures can be created using C++. A few basic trees are descrbed and an example of each is shown below.
Forest - The most basic of trees. It is an undirected, disconnected graph with no cycles.

Free - The free tree is a forest, execpt the graph is connected.

Rooted - The rooted tree is a free tree, except one node is distinguished from the others, and called the root of the tree.

Left - child, right - sibling - The Left-child, right-sibling tree is a rooted tree. Except, instead of each parent having a pointer to every sibling, each node contains only two pointers. One pointer that points to the left most child, and one to point that point to the right sibling. This tree is used when the number of siblings will be unknown, since the parent node does not have to contain a pointer for each child.

Complete k-ary tree - A complete k-ary tree is a rooted tree, except all braches have the same depth, and all internal nodes have the same number of siblings. The tree below shows a complete k-ary tree with a depth of three.
