MST

加权无向图问题--最小代价生成树(Prim算法、kruskal算法)

痴心易碎 提交于 2019-11-26 11:59:05
加权无向图的实现 加权无向图的实现最简单的方法是扩展无向图的表示方法:在邻接表的表示中,可以在链表的结点中增加一个权重域。但这里用另一个方法来实现:我们实现两个类,权重边类和无向图类。无向图类中组合权重边类来实现加权无向图。 权重边类: public class Edge implements Comparable<Edge> { //实现Comparable接口 private int v; private int w; private double weight; public Edge(int v,int w,double weight) { this.v = v; this.w = w; this.weight = weight;} //获取边的一个结点和另一个节点 public int either() {return v;} public int other(int vertex) { if(vertex == v) return w; else if(vertex == w) return v; } //实现接口中的compareTo()方法 public int compareTo(Edge that) { if(this.weight() < that.weight()) return -1; else if(this.weight() > that.weight