Tarjan算法伪代码

伪代码:

栈:当前dfs路径上的点
low[x]:x能到达的点中最小的dfn


dfs(x,t)
    将x入栈
    dfn[x]=t
    low[x]=t
    for(x,y)
        if(!vis[y])
            dfs(y,t+1),low[x]=min(low[x],low[y]);
        else
            if(y在栈中(在路径上))
                low[x]=min(low[x],low[y])
    if(low[x]=dfn[x])
        将栈出到x

猜你喜欢

转载自www.cnblogs.com/Tidoblogs/p/11221772.html