Ниже приведен псевдокод алгоритма Косараджу для поиска всех сильно связанных компонентов в графе
В настоящее время он возвращает все вершины для каждого S CC.
Как можно изменить это, так что он возвращает все ребра для каждого, например, S CC
stack STACK
void DFS(int source) {
visited[s]=true
for all neighbours X of source that are not visited:
DFS(X)
STACK.push(source)
}
CLEAR ADJACENCY_LIST
for all edges e:
first = one end point of e
second = other end point of e
ADJACENCY_LIST[second].push(first)
while STACK is not empty:
source = STACK.top()
STACK.pop()
if source is visited :
continue
else :
DFS(source)
. в этой Link тип возврата:
0 1 2
3
4
Я хочу, чтобы он также возвращал края между ними. Итак, для первого это будет:
(2,1), (1, 0), (0, 2)
null
null
Последние два равны нулю, потому что S CC - это просто отдельные узлы