33得票3回答
Tarjan算法在C#中的环检测帮助

以下是 tarjan's cycle detection 的 C# 实现代码。 该算法的详细说明可参考: http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithmpublic class T...

18得票3回答
Tarjan的强连通分量算法的功能性实现

我已经在Scala中实现了Tarjan的SCC算法的教科书版。 但是,我不喜欢这段代码——它非常命令式/过程化,有很多可变状态和繁琐的索引。 是否有更“函数式”的算法版本? 我相信算法的命令式版本隐藏了算法的核心思想,而函数式版本则不然。 我发现其他人遇到了同样的问题,但我无法将他的Cloju...

17得票4回答
如何学习Tarjan算法?

我已经尝试从维基百科学习Tarjan算法3个小时了,但我仍无法理解。:( http://en.wikipedia.org/wiki/Tarjan's_strongly_connected_components_algorithm#cite_note-1 为什么它是DFS树的子树?(实际上,...

15得票2回答
Tarjan算法在Python中寻找强连通分量无法正常运行

我实现了Tarjan强连通分量算法,根据维基百科的伪代码,用Python编写,但是它没有工作。该算法非常简短,我找不到任何区别,因此无法确定为什么它不起作用。我试图检查原始论文,但未能找到。 以下是代码: def strongConnect(v): global E, idx, CCs...

14得票3回答
塔尔扬的强连通分量算法是否给出强连通分量的拓扑排序?

我一直在研究SCC及其相关算法,发现人们几乎总是提到 Kosaraju 算法不仅可以找到 SCC,而且还能以(反向)拓扑排序的方式返回它们。 我的问题是:Tarjan 算法难道也不能以(反向)拓扑排序的方式返回结果吗?我从阅读的资料中发现它没有被提到(至少除了维基百科外)。 我一直在思考这...

12得票1回答
递归算法的迭代版本较慢

我正在尝试实现 Tarjan 强连通分量(SCCs)的迭代版本,以下是为您方便起见复制的算法(来源:http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm)。 Input: Graph G...

10得票5回答
图中的反向边

我很难理解Tarjan算法的关节点。我目前正在按照这里的教程进行学习:https://www.hackerearth.com/practice/algorithms/graphs/articulation-points-and-bridges/tutorial/。我真正看不懂的是,在任何其他教...

9得票1回答
Tarjan的强连通分量算法中,lowlink是什么意思?

我在阅读以下链接中的代码http://www.cosc.canterbury.ac.nz/tad.takaoka/alg/graphalg/sc.txt时,不断遇到单词“low-link”,但我不知道它的含义。 我知道这可能是一个初学者的问题,但请问有人能解释一下吗? 谢谢。

9得票3回答
使用Tarjan算法枚举图中的环

我正在尝试使用Tarjan算法确定有向图中的循环。此算法详细介绍于Tarjan在1972年9月发表的研究论文“枚举有向图的基本回路”中。我使用Python编写算法,并使用邻接链表来跟踪节点之间的关系。在下面的"G"中,节点0指向节点1,节点1指向节点4、6、7...等等。请参考以下图形可视化结...

9得票1回答
Tarjan的强连通分量算法 - 为什么在反向边中使用索引?

我正在学习Tarjan算法求强联通分量,对它的工作原理已经很清楚了。但是有一行我不太明白: // Consider successors of v for each (v, w) in E do if (w.index is undefined) then // Successo...