# Why Prim’s and Kruskal’s MST algorithm fails for Directed Graph?

**Pre-requisites:**

- Graph and its representations
- Greedy Algorithms | Set 5 (Prim’s Minimum Spanning Tree (MST))
- Kruskal’s Minimum Spanning Tree Algorithm | Greedy Algo-2

Given a directed graph **D = < V, E >**, the task is to find the minimum spanning tree for the given directed graph

But the Prim’s Minimum Spanning Tree and Kruskal’s algorithm fails for directed graphs. Let us see why

**Why Prim’s Algorithm Fails for Directed Graph ?**

Prim’s algorithm assumes that all vertices are connected. But in a directed graph, every node is not reachable from every other node. So, Prim’s algorithm fails due to this reason.

**For Example:**

As it is visible in the graph, no node is reachable from node 4. Directed graphs fail the requirement that all vertices are connected.

**Why Kruskal’s Algorithm fails for directed graph ?**

In Kruskal’s algorithm, In each step, it is checked that if the edges form a cycle with the spanning-tree formed so far. But Kruskal’s algorithm fails to detect the cycles in a directed graph as there are cases when there is no cycle between the vertices but Kruskal’s Algorithm assumes it to cycle and don’t take consider some edges due to which Kruskal’s Algorithm fails for directed graph.

**For example:**

This graph will be reported to contain a cycle with the Union-Find method, but this graph has no cycle.

The equivalent of minimum spanning tree in directed graphs is, “Minimum Spanning Arborescence”(also known as optimum branching) can be solved by Edmonds’ algorithm with a running time of O(EV). This algorithm is directed analog of the minimum spanning tree problem.

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

## Recommended Posts:

- Hierholzer's Algorithm for directed graph
- Convert the undirected graph into directed graph such that there is no path of length greater than 1
- Convert undirected connected graph to strongly connected directed graph
- Check if a directed graph is connected or not
- Detect Cycle in a Directed Graph using BFS
- Convert Directed Graph into a Tree
- Detect Cycle in a Directed Graph
- Euler Circuit in a Directed Graph
- Clone a Directed Acyclic Graph
- Shortest Path in Directed Acyclic Graph
- Detect Cycle in a directed graph using colors
- Longest Path in a Directed Acyclic Graph
- Find if there is a path between two vertices in a directed graph
- Path with minimum XOR sum of edges in a directed graph
- Longest Path in a Directed Acyclic Graph | Set 2

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.