2013-01-10 6 views
0

나는 Networkx를 사용하여 의존성 그래프를 작성하고 있습니다. 예를 들어이 구조체가 있습니다. 내가 좋아하는 Networkx 쉽게 구축 Networkx로 그래프 구조 얻기

A 
+-B 
    +-C 
+-H 

AA 
+-BB 
    +-CC 

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:{} } 
을 제공합니다 : 같은 예를 들어 나는 할 것이다 경우

어느 것이 정확하지만 나머지는 어디에 있습니까 ??? A는 마 G.successors [B]는 올바르지 만 왜 내가 할 때에 넣어하지 않는 나에게

{C:{}} 

을 반환 또한 경우 G.successors [A]?

그리고 다른 질문입니다. Networksx와 함께 노드에서 "경로"를 얻을 수 있습니까? 예를 들어?

[A,H] or [A,B,C] 

감사합니다

답변

관련 문제