JGraphT:获取邻居节点

Jan*_*lek 2 java graph jgrapht

我有一个简单的无向图G = (V, E)。给定一个节点n,有没有一种简单的方法来找到它的所有邻居,即所有节点m,使得{n, m} in E

edgesOf一种方法,它返回连接到给定节点的所有边。但是,似乎在无向图中它多少有些随意,哪个节点是源,哪个节点是目标。

我想我可以简单地检查我的节点是源节点还是目标节点,然后另一个节点是我要寻找的邻居,但这很麻烦。有没有更优雅的方式?

Pan*_*tis 5

您可以通过neighborListOf(Graph g,V vertex)来做到这一点,例如:

    Graph<String, DefaultEdge> g = new SimpleGraph<>(DefaultEdge.class);

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

    g.addVertex(v1);
    g.addVertex(v2);
    g.addVertex(v3);
    g.addVertex(v4);

    g.addEdge(v1, v2);
    g.addEdge(v2, v3);
    g.addEdge(v3, v4);
    g.addEdge(v4, v1);

    System.out.println(Graphs.neighborListOf(g, v1));
Run Code Online (Sandbox Code Playgroud)