我正在尝试使用优先级队列来实现 prim 的算法。当我调用 offer() 方法时,它给了我一个类转换异常,说顶点不能转换为可比较的。有解决方法吗?
public static Collection<Edge> prims(Graph g, int start) {
ArrayList<Edge> mst = new ArrayList<Edge>();
PriorityQueue<Vertex> vertices = new PriorityQueue<Vertex>();
Vertex startVertex;
for (Vertex vertex : g.getVertices()) {
vertices.offer(vertex);
if (vertex.getId() == start) {
startVertex = vertex;
}
}
if (!mst.isEmpty()) {
return mst;
}
return null;
}
}