2013-01-10 147 views
0

我正在使用Networkx构建依赖关系图。 例如,我有这个结构。使用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,) 

(顺便说一下,我不知道我怎么能设置一个根节点,所以我有一个根=集()在那里我有所有我的根,在这种情况下根=(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] 

谢谢

回答