接着,我们看看 Tarjan 算法的主体 // x 代表当前搜索树的根节点,in_edge 代表其对应的序号(tot)voidtarjan(intx,intin_edge){// 在搜索之前,先初始化节点 x 的时间戳与追溯值dfn[x]=low[x]=++num;// 通过 head 变量获取节点 x 的直接连接的第一个相邻节点的序号// 通过 Next 变量,迭代获取剩下的...
简单而言,Tarjan算法基于深度优先搜索,高效解决图的连通性问题。它能在线性时间内找出无向图的割点与桥,进一步揭示无向图的双连通分量,以及有向图的强连通分量、必经点与必经边。Robert Tarjan,计算机科学巨匠,发明了高效解决最近公共祖先、强连通分量与双连通分量问题的算法,同时参与开发了斐波那契堆...