From c51667316657be8b9cd33d2b246a72ad7f0f5ae5 Mon Sep 17 00:00:00 2001 From: MitaliJM <91389144+MitaliJM@users.noreply.github.com> Date: Sat, 28 Oct 2023 02:31:22 +0530 Subject: [PATCH] Create Prim's_Algorithm.java --- Algoritms/Prim's_Algorithm.java | 72 +++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Algoritms/Prim's_Algorithm.java diff --git a/Algoritms/Prim's_Algorithm.java b/Algoritms/Prim's_Algorithm.java new file mode 100644 index 00000000..2054d925 --- /dev/null +++ b/Algoritms/Prim's_Algorithm.java @@ -0,0 +1,72 @@ +import java.io.*; +import java.util.*; + +// Class to form pair +class Pair implements Comparable +{ + int v; + int wt; + Pair(int v,int wt) + { + this.v=v; + this.wt=wt; + } + public int compareTo(Pair that) + { + return this.wt-that.wt; + } +} + +class GFG { + +// Function of spanning tree +static int spanningTree(int V, int E, int edges[][]) + { + ArrayList> adj=new ArrayList<>(); + for(int i=0;i()); + } + for(int i=0;i pq = new PriorityQueue(); + pq.add(new Pair(0,0)); + int[] vis=new int[V]; + int s=0; + while(!pq.isEmpty()) + { + Pair node=pq.poll(); + int v=node.v; + int wt=node.wt; + if(vis[v]==1) + continue; + + s+=wt; + vis[v]=1; + for(Pair it:adj.get(v)) + { + if(vis[it.v]==0) + { + pq.add(new Pair(it.v,it.wt)); + } + } + } + return s; + } + + // Driver code + public static void main (String[] args) { + int graph[][] = new int[][] {{0,1,5}, + {1,2,3}, + {0,2,1}}; + + // Function call + System.out.println(spanningTree(3,3,graph)); + } +}