求解强连通分量的Tarjan算法描述
来源:互联网 发布:nginx生成ssl证书 编辑:程序博客网 时间:2024/05/21 22:58
输入:有向图 (V, E)
建立全局栈 S,初始为空
建立全局的映射(数组)TimeStamp: V → { 1, ..., |V| }
建立全局的映射(数组)GoBack: V → { 1, ..., |V| }
设置全局时间戳 GlobalTimeStamp ← 0
对每个 v ∈ V
如果没有访问过 v 则
调用 Tarjan(v)
其中,Tarjan(v) 的定义是:
GlobalTimeStamp ← GlobalTimeStamp + 1
标记 v 已经访问过
TimeStamp(v) ← GlobalTimeStamp
GoBack(v) ← GlobalTimeStamp
向 S 中压入 v
对每个使 (v, u) ∈ E 的 u(也就是可以由 v 直接到达的顶点 u)
如果 u ∈ S 则
GoBack(v) ← min { GoBack(v), TimeStamp(u) }
如果没有访问过 u 则
调用 Tarjan(u)
GoBack(v) ← min { GoBack(v), GoBack(u) }
如果 GoBack(v) = TimeStamp(v) 则
不断弹出 S 的元素直到把 v 也弹出了
输出刚刚弹出的这些顶点作为一个强连通分量
建立全局栈 S,初始为空
建立全局的映射(数组)TimeStamp: V → { 1, ..., |V| }
建立全局的映射(数组)GoBack: V → { 1, ..., |V| }
设置全局时间戳 GlobalTimeStamp ← 0
对每个 v ∈ V
如果没有访问过 v 则
调用 Tarjan(v)
其中,Tarjan(v) 的定义是:
GlobalTimeStamp ← GlobalTimeStamp + 1
标记 v 已经访问过
TimeStamp(v) ← GlobalTimeStamp
GoBack(v) ← GlobalTimeStamp
向 S 中压入 v
对每个使 (v, u) ∈ E 的 u(也就是可以由 v 直接到达的顶点 u)
如果 u ∈ S 则
GoBack(v) ← min { GoBack(v), TimeStamp(u) }
如果没有访问过 u 则
调用 Tarjan(u)
GoBack(v) ← min { GoBack(v), GoBack(u) }
如果 GoBack(v) = TimeStamp(v) 则
不断弹出 S 的元素直到把 v 也弹出了
输出刚刚弹出的这些顶点作为一个强连通分量
阅读全文
0 0
- 求解强连通分量的Tarjan算法描述
- tarjan算法求解强连通分量
- tarjan算法求解强连通分量
- 求强连通分量的Tarjan算法
- 强连通分量个数的tarjan算法
- 强连通分量(SCC)的Tarjan算法
- 强连通分量的tarjan算法
- 求强连通分量的Tarjan算法
- 求强连通分量的Tarjan算法
- Tarjan求有向图的强连通分量(Tarjan算法描述)
- Tarjan求有向图的强连通分量(Tarjan算法描述)
- Tarjan求有向图的强连通分量(Tarjan算法描述)
- Tarjan算法求解强连通分量(SCC)
- 强连通分量 Tarjan算法
- 强连通分量 tarjan算法
- 强连通分量Tarjan算法
- Tarjan强连通分量算法
- 强连通分量Tarjan算法
- 暑假总结(四)
- 显著性检测(三)A Model of Saliency-Based Visual Attention for Rapid Scene Analysis
- If(flag) 与 if(!flag)
- STM32的中断和事件(很好此作者嵌入式学习有见地)20171004
- 暑假总结(五)
- 求解强连通分量的Tarjan算法描述
- 暑假总结(六)
- C语言初步-第43讲: 从文本文件中读入数据(成绩统计)
- Java中的溢出现象
- SpringBoot
- EasyPlayerPro(Windows)开发系列之采用ffmpeg进行录像
- 支持向量机support vector machines
- 暑假总结(七)
- 隐式数据类型转换