-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprim.java
More file actions
46 lines (35 loc) · 1.13 KB
/
prim.java
File metadata and controls
46 lines (35 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.util.List;
import java.util.PriorityQueue;
class Pair{
int node;
int distance;
Pair(int node,int distance){
this.node=node;
this.distance=distance;
}
}
public class prim {
static int spanningTree(int V, int E, List<List<int[]>> adj) {
// Code Here.
PriorityQueue<Pair> pq=new PriorityQueue<Pair>((x,y) -> x.distance-y.distance);
int[] vis=new int[V];
pq.add(new Pair(0,0));
int sum=0;
while(pq.size()>0){
Pair current = pq.poll();
int wt = current.distance;
int node = current.node;
if(vis[node]==1) continue;
vis[node]=1;
sum+=wt;
for (int i = 0; i < adj.get(node).size(); i++) {
int adjNode = adj.get(node).get(i)[0];
int edW = adj.get(node).get(i)[1];
if (vis[adjNode] == 0) {
pq.add(new Pair(adjNode, edW));
}
}
}
return sum;
}
}