 # Spanning Tree and Minimum Spanning Tree

Before we learn about spanning trees, we need to understand two graphs: undirected graphs and connected graphs.

An undirected graph is a graph in which the edges do not point in any direction (ie. the edges are bidirectional).

A connected graph is a graph in which there is always a path from a vertex to any other vertex.

## Spanning tree

A spanning tree is a sub-graph of an undirected connected graph, which includes all the vertices of the graph with a minimum possible number of edges. If a vertex is missed, then it is not a spanning tree.

The edges may or may not have weights assigned to them.

The total number of spanning trees with `n` vertices that can be created from a complete graph is equal to `n(n-2)`.

If we have `n = 4`, the maximum number of possible spanning trees is equal to `44-2` `= 16`. Thus, 16 spanning trees can be formed from a complete graph with 4 vertices.

## Example of a Spanning Tree

Let's understand the spanning tree with examples below:

Let the original graph be:

Some of the possible spanning trees that can be created from the above graph are:

## Minimum Spanning Tree

A minimum spanning tree is a spanning tree in which the sum of the weight of the edges is as minimum as possible.

## Example of a Spanning Tree

Let's understand the above definition with the help of the example below.

The initial graph is:

The possible spanning trees from the above graph are:

The minimum spanning tree from the above spanning trees is:

The minimum spanning tree from a graph is found using the following algorithms:

## Spanning Tree Applications

• Computer Network Routing Protocol
• Cluster Analysis
• Civil Network Planning

## Minimum Spanning tree Applications

• To find paths in the map
• To design networks like telecommunication networks, water supply networks, and electrical grids.