algorithm - 查找强连接组件之间的弧

标签 algorithm graph tarjans-algorithm strongly-connected-graph

有了图及其所有强连通分量,我想知道找到连接两个 SCC 的弧的最有效方法是什么。我找到的所有解决方案都涉及运行所有节点,我想知道是否有一种方法可以在不这样做的情况下执行此操作,特别是在我用来在图中找到 SCC 的 Tarjan 算法期间。无论如何以线性方式进行?

非常感谢!

最佳答案

只需将不同顶点之间的连接设为一个指针,并将给定 SCC 的每个顶点的值更改为相同的值即可。

这样你就不必“搜索”任何东西。

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

这样你就可以得到一个包含 1234 的 SCC

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

如果您将连接存储为指针,您只需将顶点 5 中的值 5 更改为 6,然后转到从 4 到 5 的指针,您将获得 6。 我不是很清楚希望你明白这个想法。

关于algorithm - 查找强连接组件之间的弧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49352911/

相关文章:

java - 根据用户输入计算运动方程(更短的方法?)

algorithm - 动态规划具有属性的子序列计数?

algorithm - 如何反转(镜像)递归二叉搜索树的子树

javascript - JQuery/HTML5 : Organisational Chart, 如何使用此插件正确删除节点?

data-structures - 具有 native /语法/内联图支持的语言?

javascript - 在图表js中鼠标悬停绘制水平和垂直线

python - 在 Matplotlib 中设置绘图 Canvas 的大小

algorithm - Tarjan 的强连通分量算法——为什么索引在后边?

c++ - Tarjan 实现中反复出现的衔接点

python - Tarjan 算法 - Python 到 scala