import java.util.*; public class QNode implements Comparable{ private Node n; private double key1; private double key2; public QNode(Node n, double k1, double k2) { this.n = n; key1 = k1; key2 = k2; } public String toString() { return "("+n.toString()+")--["+key1+";"+key2+"])" ; } public boolean equals(Object obj) { if (!(obj instanceof QNode)){ return false; } if (this.compareTo((QNode)obj) == 0) { Node othern = ((QNode)obj).getNode(); if (othern.equals(this.n)) { return true; } } return false; } /* public int compareTo(Object obj) { if (obj instanceof QNode) { return (this.compareTo((QNode)obj)); } else { return (-1 * obj.compareTo((Object)this)); } }*/ public int compareTo(QNode qn) { if (key1 == qn.getKey1()) { if (key2 == qn.getKey1()) { return 0; } if (key2 > qn.getKey2()) { return 1; } else { return -1; } } else { if (key1 > qn.getKey1()) { return 1; } else { return -1; } } } public double getKey1() { return key1; } public double getKey2() { return key2; } public Node getNode() { return n; } }