DFS序、割点与破圈法
概述
DFS序列是图论中的基础,因为DFS序的变形与延伸算法占有图论的基础。割点与破圈则是DFS延伸的算法或概念。
DFS现在一直被理解为深度优先搜索这个算法架构,其实并不是啊,在多本参考文献中DFS一直以DFS序的形式出现,而所谓的深搜只是浅层次的含义。
什么是DFS序(DFS)?
dfs序,顾名思义,就是dfs深度优先搜索经过的点的序列;所以dfs序具有这几个性质:知道哪个点连接自己、知道是第几个遍历的点等
U.color存储着当前状态
GRAY为正在访问,WHITE为未访问,BLACK为被访问过。
U.π代表了连接它的父亲节点。
U.d表示了第一时间戳,U.f表示了第二时间戳。
我们不妨设图Gπ=(V,Eπ),其中
Eπ={ (v.π,v):v∈V且v.π≠NIL}
(Eπ为树边,Gπ的前驱子图为Gπ=(Vπ,Eπ))
每个结点的初始颜色都是白色,在结点被访问时为灰色,其邻接链表被扫描后变成黑色。
第二时间戳v.f记录了搜索完成对v的邻接链表扫描的时间(被标BLACK时)
而第一时间戳v.d记录了v被发现时的时间(被标GRAY时)
显然对于每一个结点u有
u.d<u.f
而对于输入图G既可以是有向图