Нахождение дуг между сильно связанными компонентами

Имея график и все его сильно связанные компоненты, мне было интересно, какой самый эффективный способ найти дуги, соединяющие два SCC. Все решения, которые я нашел, включают в себя прохождение всех узлов, и мне было интересно, есть ли способ сделать это, не делая этого, в частности, во время алгоритма Тарьяна, который я использовал для поиска SCC на графике. В любом случае, делать это линейно?

Большое спасибо!

1 ответ

Просто сделайте связи между различными вершинами указателем и измените значение каждой вершины данного SCC на одно и то же значение.

Таким образом, вам не нужно ничего "искать".

Ex: 1->2->3->4->1

Таким образом, вы получите SCC, который содержит 1234

then 4->5
and 5->6->7->5

Если вы храните соединения в виде указателей, вам просто нужно изменить значение 5 в вершины 5 на 6, а затем перейти к указателю от 4 до 5, чтобы получить 6. Я не очень ясно надеюсь, что вы поняли идею.

Другие вопросы по тегам