python - networkx 库的函数 dfs_edges 找不到所有边
问题描述
我想使用dfs_edges
networkx库找到源节点的所有可达边,但它无法完全找到所有边,我的代码是:
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)
也是 node 的可达边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)]
推荐阅读
- javascript - 此 Web3.js 调用没有结果
- react-native - 将 curl 语句更改为 axios
- python - Pandas Plot,从高到低排列条形图,并分别为各个条形图着色
- c++ - "(char*)&" 魔法是如何工作的?
- java - Java 中的 Snake 没有正确构建或增长
- php - symfony 中带有域名的 URL
- php - 带有命令的 PHP shell_exec 的行为方式与通过终端执行时不同
- python - 如何反转 Sklearn `plot_confusion_matrix` 函数中的混淆矩阵?
- python - Python中的Spacy正则表达式短语匹配器
- algorithm - 时间复杂度为 O(nlogk)