打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关节点

利用深度优先搜索便可以求的图的关节点,本由此可判别图是否重连通。

从任一点出发深度优先遍历得到优先生成树,对于树中任一顶点V而言,其孩子节点为邻接点。由深度优先生成树可得出两类关节点的特性:

(1)若生成树的根有两棵或两棵以上的子树,则此根顶点必为关节点。因为图中不存在连接不同子树顶点的边,若删除此节点,则树便成为森林。

(2)若生成树中某个非叶子节点V,其某棵子树与V的祖先节点无连接,则V为关节点。因为删去v,则其子树和图的其它部分被分割开来

定义

low[v] 设对连通图G=(V,E)进行先深搜索的先深编号为dnf[v],产生的先深生成树为S=(V,T),B试回退边之集。对每个顶点v,low[v]定义如下

low[v]=Min{dfn[v],Min{low[w]|w是v的一个子女},Min{dfn[x]|(v,x)是一条回边}}//dfn数组记录顶点的深度优先数

算法: 求无向图的双连通分量

输入:连通的无向图G=( V, E )。L[v]表示关于v的邻接表

输出:G的所有双连通分量,每个连通分量由一序列的边组成。

算法要点

1.计算先深编号:对图进行先深搜索,计算每个结点v的先深编号dnf[v],形成先深生成树S=(V,T)。

2.计算low[v]:在先深生成树上按后根顺序进行计算每个顶点v的 low[v], low[v]取下述三个结点中的最小者:

(1) dfn[v];

(2) dfn[w],凡是有回退边(v,w)的任何结点w;

(3) low[y],对v的任何儿子y。

3.求关节点:

(1)树根是关节点,当且仅当它有两个或两个以上的儿子(第一类关节点);

(2)非树根结点v是关节点当且仅当v有某个儿子y,使low[y]≥dnf[v](第二类关节点)。

求双连通分量的算法――同先深搜索算法(略)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
图的连通性——Tarjan算法&割边&割点
[数据结构]完全二叉树及其叶子节点的计算方法
笔试题答案
二分图匹配算法总结(phoenixinter)
gis原理九
NOIP初赛整理分析 | 这些题你一定不能丢分!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服