DFS序列、割点与破圈法

本文介绍了DFS序的基本概念,包括DFS序的性质、颜色状态和时间戳的记录。接着讨论了DFS树及其在判断两点关系中的应用,并讲解了割点的定义及其求解方法,包括直接DFS法和Tarjan算法。最后提到了破圈法在最小生成树求解中的独特优势及其适用场景。
摘要由CSDN通过智能技术生成

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):vVv.π≠NIL}

Eπ为树边,Gπ的前驱子图为Gπ=VπEπ))

每个结点的初始颜色都是白色,在结点被访问时为灰色,其邻接链表被扫描后变成黑色。

第二时间戳v.f记录了搜索完成对v的邻接链表扫描的时间(被标BLACK时)

而第一时间戳v.d记录了v被发现时的时间(被标GRAY时)

显然对于每一个结点u

u.d<u.f

而对于输入图G既可以是有向图࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值