/home/gshute/instruction/cs4521/projects/Graph1/src/graph/PrioritizingGraphVisitor.java |
package graph;
import java.util.Comparator;
public abstract class PrioritizingGraphVisitor
extends GraphVisitor {
private Comparator<Object> comparator;
public Comparator<Object> getComparator() {
if (comparator == null) {
comparator = new Comparator<Object>() {
public int compare(Object edge1, Object edge2) {
double weight1 = getEdgePriority(edge1);
double weight2 = getEdgePriority(edge2);
return (int) Math.signum(weight1 - weight2);
}
};
}
return comparator;
}
public abstract double getEdgePriority(Object edge);
public abstract void startSearch(Graph graph, Object startVertex);
}