Как найти сильные компоненты связности в орграфе с помощью DFS? Python
С помощью поиска в глубину мне нужно найти количество сильный компонент и вершины которые входят в них, как реализовать поиск в глубину я знаю, но вот с компонентами разобратся не могу, список Vertexes хранит ребра графа, а словарь Edges смежные вершины.
def dfs(v):
global visited,Vertex,Edges
visited[v] = True
for i in range(len(Edges[v])-1):
u = Edges[v][i]
if visited[u] == False:
dfs(u)
Vertex = 0
Vertexs = []
Edge = 0
f = open("Text.txt", 'r')
with f:
Vertexs = [ line.split() for line in f ]
Vertex = Vertexs[0][0]
Edge = Vertexs[0][1]
del Vertexs[0]
print("Ребра графу: ",Vertexs)
Edges = {}
for i in range(int(Vertex)):
Edges[i+1] = []
for i in range(int(Vertex)):
for elem in Vertexs:
if int(elem[0]) == i+1:
Edges[i+1].append(int(elem[1]))
print("Список суміжніх вершин: ", Edges)
visited = [False] * (int(Vertex) + 1)