带有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()
如果a取树的节点2。
我怎样才能得到 2 的子树?
编辑
我期望这个子树
[(4,2),(5,2),(6,5)]
In networkX, I have a tree as 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()
If a take the node 2 of tree.
how I can get the subtree of 2 ?
Edit
I expected this subtree
[(4,2),(5,2),(6,5)]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的意思是以节点
2
为根的子树,那就是编辑:看来您已经颠倒了边中节点的顺序。在有向树中,所有路径都是从根到叶,而不是相反。
dfs_tree(t.reverse(), 2)
为您提供所需的树,但请更改您的代码。If you mean the subtree rooted at node
2
, that'sEdit: it seems you've reversed the order of nodes in your edges. In a directed tree, all paths proceed from the root to a leaf, not the other way around.
dfs_tree(t.reverse(), 2)
gives you the tree that you want, but do change your code.