Tarjan算法
Tarjan算法是用与求强连通分量的一个算法
伪代码
标记数组Dfn[]:记录点的访问次序 标记数组Low[]:动态更新访问该点的最小次序
DFS(u){
Dfn[u]=Low[u]=++num;//1.记录
Stack[++t]=u;//2.入栈
for(u能访问的每个点v){
if(Dfn[v]==0)//没有访问过
DFS(v);
Low[u]=min(Low[u],Low[v]);//回溯更新
else if(v在栈中)//说明第二次到同一个点 既已经出现环
Low[u]=Low[v]//动态更新
}
if(Dfn[u]==Low[u])//找到分量的根
//进行输出
}

浙公网安备 33010602011771号