0

我正在使用 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] 

谢谢

4

1 回答 1

1

http://networkx.lanl.gov/reference/algorithms.traversal.html

print nx.dfs_successors(G,'A')

>> {A: [H,B], B:[C]}

我不知道如何生成您在示例中给出的结构..

于 2013-01-10T09:36:41.150 回答