Graphs

Greedy Spanning: Implementing Prim's Algorithm

Apr 2026
10 min read

Prim's algorithm is a greedy masterpiece. It builds a Minimum Spanning Tree by always picking the cheapest edge that connects the current tree to an outside node.

Implementation

java
class Solution { static int spanningTree(int V, List<List<int[]>> adj) { PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> a[0] - b[0]); boolean[] vis = new boolean[V]; pq.add(new int[]{0, 0}); int sum = 0; while (!pq.isEmpty()) { int[] it = pq.poll(); int wt = it[0]; int node = it[1]; if (vis[node]) continue; vis[node] = true; sum += wt; for (int[] neighbor : adj.get(node)) { if (!vis[neighbor[0]]) { pq.add(new int[]{neighbor[1], neighbor[0]}); } } } return sum; } }