Jua*_*blo 3 python tree subtree networkx
在networkX中,我有一棵树作为DiGraph().
#!/usr/bin/python
# -*- coding: utf-8 -*-
import networkx as nx
t = nx.DiGraph()
t.add_edge(1,'r')
t.add_edge(2,'r')
t.add_edge(3,'r')
t.add_edge(4,2)
t.add_edge(5,2)
t.add_edge(6,5)
print t.edges()
Run Code Online (Sandbox Code Playgroud)
如果采取树的节点2.
我怎么能得到2的子树?
我期待这个子树
[(4,2),(5,2),(6,5)]
Run Code Online (Sandbox Code Playgroud)
如果你的意思是以节点为根的子树2,那就是
from networkx.algorithms.traversal.depth_first_search import dfs_tree
subtree_at_2 = dfs_tree(t, 2)
Run Code Online (Sandbox Code Playgroud)
编辑:似乎你已经颠倒了边缘中节点的顺序.在有向树中,所有路径都从根到叶,而不是相反.dfs_tree(t.reverse(), 2)为您提供所需的树,但请更改您的代码.
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |