tarjan算法伪代码

tarjan算法伪代码tarjan(u){    DFN[u]=Low[u]=++Index//为节点u设定次序编号和Low初值    Stack.push(u)//将节点u压入栈中    for each(u,v) in E//枚举每一条边        if (visnotvisted)//如果节点v未被访问过            tarjan(v)//继续向下找            Low[u]=min(Low[u],Low[v])        else if (vinS)//如果节点v还在栈内                Low[u]=min(Low[u],DFN[v])    if (DFN[u]==Low[u])//如果节点u是强连通分量的根    repeat{        v=S.pop//将v退栈,为该强连通分量中一个顶点        printv        until(u==v)    }}

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关