DSA Minimum Spanning Tree

DSA Minimum Spanning Tree (MST)
(Concept • Properties • Algorithms • Examples • Code • Complexity • Interview Tips)
A Minimum Spanning Tree (MST) is one of the most important graph topics in DSA and interviews.
What is a Spanning Tree?
For a connected, undirected graph:
Uses all vertices
Contains no cycles
Has exactly V − 1 edges
What is a Minimum Spanning Tree (MST)?
Among all possible spanning trees, the MST is the one with the minimum total edge weight.
In short:
Connect all vertices with minimum cost and no cycles
Where is MST Used?
✔ Network cable laying
✔ Road / railway planning
✔ Electrical grids
✔ Cluster analysis
✔ Minimum cost infrastructure design
Key Properties of MST
Exists only for connected graphs
Works on undirected graphs
No cycles allowed
If graph has V vertices → MST has V−1 edges
MST may not be unique (if weights repeat)
Example Graph
✔ MST picks lowest-weight edges without forming cycles.
Two Famous MST Algorithms
| Algorithm | Best Use Case |
|---|---|
| Kruskal’s Algorithm | Sparse graphs |
| Prim’s Algorithm | Dense graphs |
1️⃣ Kruskal’s Algorithm
Idea
Sort all edges by weight
Pick the smallest edge
Avoid cycles using Disjoint Set (Union-Find)
Steps
Sort edges by weight
Pick smallest edge
If it forms a cycle → skip
Repeat until V−1 edges
Complexity
Kruskal – C++ Code
2️⃣ Prim’s Algorithm
Idea
Start from any vertex
Always pick minimum weight edge connected to MST
Similar to Dijkstra, but for MST
Steps
Start from a node
Pick smallest edge connecting MST → new node
Repeat until all nodes included
Complexity
Prim – C++ Code
Kruskal vs Prim
| Feature | Kruskal | Prim |
|---|---|---|
| Graph type | Sparse | Dense |
| Data structure | Union-Find | Priority Queue |
| Sorting | Edges | Vertices |
| Starting node | Not needed | Required |
MST vs Shortest Path
| Feature | MST | Shortest Path |
|---|---|---|
| Goal | Min total cost | Min distance from source |
| Cycles | ❌ | Allowed |
| Algorithms | Kruskal, Prim | Dijkstra, Bellman-Ford |
Interview Questions (Very Important)
Q1. Why MST has V−1 edges?
👉 To connect all vertices without cycles
Q2. Can MST exist in directed graph?
👉 ❌ No (standard MST is for undirected graphs)
Q3. Can MST be unique?
👉 Only if all edge weights are distinct
Final Summary
✔ MST connects all vertices with minimum cost
✔ Used in real-life network problems
✔ Two algorithms: Kruskal & Prim
✔ No cycles, exactly V−1 edges
✔ Core DSA + interview favorite
