JGraphT如何知道twe顶点是否连接

时间:2015-08-20 01:45:26

标签: jgrapht

SimpleWeightedGraph<String, DefaultWeightedEdge> g = new SimpleWeightedGraph<>(DefaultWeightedEdge.class);

    String v1 = "v1";
    String v2 = "v2";
    String v3 = "v3";


    // add the vertices
    g.addVertex(v1);
    g.addVertex(v2);
    g.addVertex(v3);


    // add edges to create a circuit
    g.addEdge(v1, v2);
    g.addEdge(v2, v3);

我使用JGraphT Library创建图形,v1 - v2 - v3,如何检查v1是否与v3连接,它们可以通过v2相互联系。

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。我将使用的方法是检查最短路径。只需使用以下内容 -

DijkstraShortestPath dijk = new DijkstraShortestPath(g, startNode, endNode);
GraphPath<Integer, WeightedEdge> shortestPath = dijk.getPath();

这里 g 是图表。 GraphPath 中的类型与 g 的类型相同。如果存在连接, shortestPath 包含它们之间的最短路径。如果没有,则 shortestPath 等于null。