-1

有没有一种方法可以在保留所有边的同时更改顶点的内容。我找不到,但似乎会提供一些东西。

4

2 回答 2

1

JGraphT 没有替换顶点的方法。你可以用它来做你想做的事:

public static <V, E> void replaceVertex(Graph<V, E> graph, V vertex, V replace) {
    graph.addVertex(replace);
    for (E edge : graph.outgoingEdgesOf(vertex)) graph.addEdge(replace, graph.getEdgeTarget(edge), edge);
    for (E edge : graph.incomingEdgesOf(vertex)) graph.addEdge(graph.getEdgeSource(edge), replace, edge);
    graph.removeVertex(vertex);
}
于 2018-01-15T01:43:45.180 回答
0

更改顶点的内容是什么意思?顶点是用泛型制作的,这意味着您可以将任何对象放在那里,这意味着您可以提供一种方法来替换该对象的内容(如果它不是不可变的)。或者你想在那里放置一个全新的对象(全新的顶点)并保存旧对象的所有关系?然后你可能必须找到这个顶点的边 ( java.util.Set<E> edgesOf(V vertex)),删除它们 ( boolean removeEdge(E e)),并用包含新顶点的新边替换 ( E addEdge(V sourceVertex, V targetVertex))。

于 2012-01-07T09:17:23.560 回答