public class Edge implements Comparable{ private int v, w; private double weight; public Edge(int v, int w, double weight) { this.v = v; this.w = w; this.weight = weight; } public double weight() { return weight; } public int either() { return v; } public int other(int vertex) { if (vertex == v) return w; else if (vertex == w) return v; else throw new RuntimeException("Inconsistent edge"); } public int compareTo(Edge that) { if (this.weight < that.weight) return -1; else if (this.weight > that.weight) return +1; else return 0; } public String toString() { return String.format("[%d-%d, %.5f]", v, w, weight); // similar to printf... } }