Как найти сильные компоненты связности в орграфе с помощью 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)

Ответы (0 шт):