Извините, формулировка моего графа может быть неправильной.
Учитывая ориентированный граф, я хотел бы получить словарь, в котором ключом является узел, а значением является набор всех узлов, до которых мы можем добраться из этого узла, используя любой path.
Например, на этом графике:
1->2->3
4->5
Мы должны получить такой результат:
{
1: set(2,3),
2: set(3),
3: set(),
4: set(5),
5: set(),
}
Я мог бы получить это, вызвав что-то вроде этого:
{n: networkx.bfs_tree(graph, n).nodes() for n in networkx.nodes(graph)}
Но это подразумевает O (n ^ 2) итераций, тогда как это можно построить с O (n) итерациями.
Что мне не хватает?
Спасибо!