2013-01-10 85 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] 

謝謝

回答