Trees
Trees are useful for a lot of things, but there are three main areas of focus.
1. Algorithms for searching and labeling parts of a given tree
2. Algorithms for constructing various types of trees
3. Algorithms for counting trees of a particular type
One definition that was not included on the definition page that we will need here, is that of a spanning tree. A spanning tree is a subgraph of a graph G that includes all the
vertices of G and is also a tree. The edges of the tree and called branches.
Counting trees and their respective algorithms are used to answer questions like: "How many irrigation canal systems are there linking five locations with four canals?". Searching
trees and their respective algorithms are often used for tree structures that are organized like a computer file and when a particular piece of information is required. Constructing
algorithms are helpful when trying to minimize the number of connections.
One problem that spanning trees help to solve is the Traveling Salesman Problem. To learn more about how, read the following article.
On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem
One other problem that you can investigate to learn more about trees is The Knapsack Problem .