package kruskal; import java.util.ArrayList; import java.util.List; import kruskal.Kruskal; public class Kruskal { private Graph graph; private int[] sets; //represent set for vertices public Kruskal(Graph g) { this.graph = g; this.sets = new int[g.getTotalNumberOfVertices()]; } private void makeSet(Vertex v){ this.sets[v.getVertexNo()] = v.getVertexNo(); //simply set the set name to each vertex no } private int findSet(Vertex v){ return this.sets[v.getVertexNo()]; //gets the set name/number of a vertex } private void union(Vertex u, Vertex v){ int findWhat, replaceWith; if(u.getVertexNo() < v.getVertexNo()){ findWhat = this.sets[v.getVertexNo()]; replaceWith = this.sets[u.getVertexNo()]; } else{ findWhat = this.sets[u.getVertexNo()]; replaceWith = this.sets[v.getVertexNo()]; } //make both sets same for(int i=0; i edges[j].getWeight()){ Edge tmp = edges[i]; edges[i] = edges[j]; edges[j] = tmp; } } } } /*runs the main kruskal algorithm*/ public List getMSTEdges(){ /*holds the MST edges*/ List mstEdges = new ArrayList(); Vertex[] vertices = this.graph.getVertices(); for(int i=0; i