networkx库的dfs_edges函数找不到所有边缘

时间:2018-08-16 04:13:37

标签: python networkx

我想使用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的可达边缘,为什么结果不包含结点?

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)]