我有一个简单的无向图G = (V, E)
。给定一个节点n
,有没有一种简单的方法来找到它的所有邻居,即所有节点m
,这样{n, m} in E
?
有edgesOf
方法,它返回连接到给定节点的所有边。但是,在无向图中,它似乎有些随意,哪个节点是源,哪个是目标。
我想我可以简单地检查我的节点是源还是目标,然后另一个节点是我正在寻找的邻居,但这很笨重。还有比这更优雅的方式吗?
你可以通过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));