我正在使用Networkx构建依赖图。 例如,我有这个结构。
A
+-B
+-C
+-H
AA
+-BB
+-CC
我使用Networkx轻松构建
G = nx.DiGraph()
G.add_edge(A,B)
G.add_edge(A,H)
G.add_edge(B,C)
G.add_edge(AA,BB)
G.add_edge(BB,)
(顺便说一下,我不知道如何设置根节点,所以我有一个root = set(),其中我有我的所有根,在这种情况下root =(A))
我的问题是如何通过指定节点来获取所有层次结构?例如,如果我愿意:
G.successors[A]
它会给我
{A: {B: {C: {} }, H: {} }
但此刻,如果我这样做
G.successors[A]
它只给了我
{H:{} , B:{} }
哪个是正确的但其余部分在哪里?如果Do G.successors [B]它返回我
{C:{}}
哪个是正确的,但是当我做G.successors [A]时为什么不把它放进去?
另一个问题。 Networksx是否有可能从节点到另一个节点获得“路径”? 例如?
[A,H] or [A,B,C]
谢谢
答案 0 :(得分:1)
http://networkx.lanl.gov/reference/algorithms.traversal.html
print nx.dfs_successors(G,'A')
>> {A: [H,B], B:[C]}
我不知道如何生成你在示例中给出的结构..