Найти конечный узел в ориентированном графеPython

Программы на Python
Ответить
Anonymous
 Найти конечный узел в ориентированном графе

Сообщение Anonymous »

У меня много таких подграфов:

Код: Выделить всё

import networkx as nx
G = nx.DiGraph()
G.add_edges_from([(2,1),(3,1),(1,4)])
nx.draw(G)
Изображение

Я хочу найти все начальные и конечные узлы. Итак, я использую:

Код: Выделить всё

startnodes = [x for x in G.nodes() if G.out_degree(x)==1 and G.in_degree(x)==0]
endnode = [x for x in G.nodes() if G.out_degree(x)==0 and G.in_degree(x)==1][0]
print(startnodes, endnode)
[2, 3] 4
Но некоторые из подграфов выглядят так, как показано ниже, с 2 в градусах для одного конечного узла. Как мне найти для этого конечный узел?

Код: Выделить всё

G.add_edges_from([(2,1),(3,1)]
Изображение


Подробнее здесь: https://stackoverflow.com/questions/576 ... cted-graph
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»