• Java Data Structures Tutorial

Java Data Structures - Kruskal's algorithm



Kruskal's algorithm to find the minimum cost spanning tree uses the greedy approach. This algorithm treats the graph as a forest and every node it has as an individual tree. A tree connects to another only and only if, it has the least cost among all available options and does not violate MST properties.

To understand Kruskal's algorithm let us consider the following example −

Kruskal's Algorithm

Step 1 - Remove all loops and Parallel Edges

Remove all loops and parallel edges from the given graph.

Kruskal's Algorithm Removal

In case of parallel edges, keep the one which has the least cost associated and remove all others.

Kruskal's Algorithm Others

Step 2 - Arrange all edges in their increasing order of weight

The next step is to create a set of edges and weight, and arrange them in an ascending order of weightage (cost).

B,D D,T A,C C,D C,B B,T A,B S,A S,C
2 2 3 3 4 5 6 7 8

Step 3 - Add the edge which has the least weightage

Now we start adding edges to the graph beginning from the one which has the least weight. Throughout, we shall keep checking that the spanning properties remain intact. In case, by adding one edge, the spanning tree property does not hold then we shall consider not to include the edge in the graph.

Kruskal's Algorithm Least Weightage

The least cost is 2 and edges involved are B,D and D,T. We add them. Adding them does not violate spanning tree properties, so we continue to our next edge selection.

Next cost is 3, and associated edges are A,C and C,D. We add them again −

Kruskal's Algorithm Add Again

Next cost in the table is 4, and we observe that adding it will create a circuit in the graph.

Kruskal's Algorithm Circuit

We ignore it. In the process we shall ignore/avoid all edges that create a circuit.

Kruskal's Algorithm Create Circuit

We observe that edges with cost 5 and 6 also create circuits. We ignore them and move on.

Kruskal's Algorithm Create Circuits

Now we are left with only one node to be added. Between the two least cost edges available 7 and 8, we shall add the edge with cost 7.

Kruskal's Algorithm Add Node

By adding edge S,A we have included all the nodes of the graph and we now have minimum cost spanning tree.

Advertisements