我想使用networkx库的dfs_edges
查找源节点的所有可到达边缘,但是它无法完全找到所有边缘,我的代码是:
import networkx as nx
from networkx import dfs_edges
nodes = [0,1,2,3,4]
edges = [(0,1),(0,2),(1,2),(1,3),(2,3),(0,4)]
DG = nx.DiGraph()
DG.add_nodes_from(nodes)
DG.add_edges_from(edges)
print(list(dfs_edges(DG,1)))
结果是[(1, 2), (2, 3)]
,但是(1,3)
也是节点1
的可达边缘,为什么结果不包含结点?
答案 0 :(得分:1)
使用edge_dfs而不是dfs_edges将解决此问题。
edge_dfs(G,source)继续,直到访问了源可到达的每个边缘。
dfs_edges(G,source)访问源节点可以访问的所有节点后停止 达到。
import networkx as nx
from networkx import edge_dfs
nodes = [0,1,2,3,4]
edges = [(0,1),(0,2),(1,2),(1,3),(2,3),(0,4)]
DG = nx.DiGraph()
DG.add_nodes_from(nodes)
DG.add_edges_from(edges)
print(list(edge_dfs(DG,1))) # [(1, 2), (2, 3), (1,3)]