поддерево с сетьюX - PullRequest
       32

поддерево с сетьюX

3 голосов
/ 25 октября 2011

В сети X у меня есть дерево как DiGraph ().

#!/usr/bin/python
# -*- coding: utf-8 -*-
import networkx as nx
t = nx.DiGraph()
t.add_edge(1,'r')
t.add_edge(2,'r')
t.add_edge(3,'r')
t.add_edge(4,2)
t.add_edge(5,2)
t.add_edge(6,5)
print t.edges() 

Если взять узел 2 дерева.
как я могу получить поддерево 2?

Редактировать

Я ожидал, что это поддерево

[(4,2),(5,2),(6,5)]

1 Ответ

8 голосов
/ 25 октября 2011

Если вы имеете в виду поддерево с корнем в узле 2, то это

from networkx.algorithms.traversal.depth_first_search import dfs_tree

subtree_at_2 = dfs_tree(t, 2)

Редактировать : кажется, вы изменили порядок узлов на ваших ребрах.В ориентированном дереве все пути идут от корня к листу, а не наоборот.dfs_tree(t.reverse(), 2) дает вам дерево, которое вы хотите, но измените свой код.

...