Tree and Forest
1. What is Tree and Forest?
Tree
 In graph theory, a tree is an undirected, connected and acyclic graph. In other words, a connected graph that does not contain even a single cycle is called a tree.
 A tree represents hierarchical structure in a graphical form.
 The elements of trees are called their nodes and the edges of the tree are called branches.
 A tree with n vertices has (n1) edges.
 Trees provide many useful applications as simple as a family tree to as complex as trees in data structures of computer science.
 A leaf in a tree is a vertex of degree 1 or any vertex having no children is called a leaf.
Example
In the above example, all are trees with fewer than 6 vertices.
Forest
In graph theory, a forest is an undirected, disconnected, acyclic graph. In other words, a disjoint collection of trees is known as forest. Each component of a forest is tree.
Example
The above graph looks like a two subgraphs but it is a single disconnected graph. There are no cycles in the above graph. Therefore it is a forest.
2. Properties of Trees
 Every tree which has at least two vertices should have at least two leaves.
 Trees have many characterizations:
Let T be a graph with n vertices, then the following statements are equivalent:
 T is a tree.
 T contains no cycles and has n1 edges.
 T is connected and has (n 1) edge.
 T is connected graph, and every edge is a cutedge.
 Any two vertices of graph T are connected by exactly one path.
 T contains no cycles, and for any new edge e, the graph T+ e has exactly one cycle.
 Every edge of a tree is cut edge.
 Adding one edge to a tree defines exactly one cycle.
 Every connected graph contains a spanning tree.
 Every tree has at least two vertices of degree two.
3. Spanning Tree
A spanning tree in a connected graph G is a subgraph H of G that includes all the vertices of G and is also a tree.
Example
Consider the following graph G:
From the above graph G we can implement following three spanning trees H:
Methods to find the spanning Tree
We can find the spanning tree systematically by using either of two methods:
 Cutting down Method
 Building up Method
1. Cutting down method
 Start choosing any cycle in Graph G.
 Remove one of cycle's edges.
 Repeat this process until there are no cycles left.
Example
 If we remove the edge ac which destroy the cycle adca in the above graph then we get the following graph:
 Remove the edge cb, which destroy the cycle adcba from the above graph then we get the following graph:
 If we remove the edge ec, which destroy the cycle decd from the above graph then we get the following spanning tree:
2. Building  up method
 Select edges of graph G one at a time. In such a way that there are no cycles are created.
 Repeat this process until all the vertices are included.
Example
Consider the following graph G,
 After that , choose the edge ec,
 Next, choose the edge cb, then finally we get the following spanning tree:
Circuit Rank
The number of edges we need to delete from G in order to get a spanning tree.
Spanning tree G = m (n1), which is called the circuit rank of G.
Example
In the above graph, edges m = 7 and vertices n = 5
Then the circuit rank is,
