NetworkX递归子节点

时间:2017-05-03 19:23:16

标签: python recursion nodes networkx

在编写本文时使用最新的NetworkX(version 1.11),检索给定节点的所有(递归)子节点的最有效方法是什么?
successors()函数检索直接子项,在以前的版本中有dfs_preorder_nodes solution

2 个答案:

答案 0 :(得分:0)

dfs_preorder_nodes在Joel指出的最新版本中仍然有效。该文档可用here

以下实现了所需的节点,即感兴趣节点的所有递归子节点:

import networkx as nx 
children = [node for node in nx.dfs_preorder_nodes(network, queryID)]`

答案 1 :(得分:0)

有一个后代方法,它将找到所有子节点,包括每个子节点的子节点:

1-2
 \
  3
   \
    4
import networkx as nx

G = nx.DiGraph()
G.add_edge(1, 2)
G.add_edge(1, 3)
G.add_edge(2, 4)
res = nx.descendants(G, 1)
print (res) #{2,3,4}