关节点与重连通图
第1页,本讲稿共11页
关节点
如果一个连通图在删除了某个顶点u以及与u相连接的边之后,变成了非连通图,这个顶点u就称为关节点
下图中的顶点2和顶点6就是关节点
5
3
4
2
1
6
7
第关节点与重连通图
第1页,本讲稿共11页
关节点
如果一个连通图在删除了某个顶点u以及与u相连接的边之后,变成了非连通图,这个顶点u就称为关节点
下图中的顶点2和顶点6就是关节点
5
3
4
2
1
6
7
第2页,本讲稿共11页
重连通图
一个不含关节点的连通图称为重连通图
对于重连通的无向图来说,每对顶点之间至少存在两条路径
连通图可以用来表示通信网络系统。为了提高系统的稳定性,网络中不应该有关节点。
第3页,本讲稿共11页
关节点的判定
如何来判定一个连通图中是否有关节点呢?
通过考察连通图的深度优先生成树,可以得出解决此问题的一个方法
第4页,本讲稿共11页
关节点的判定
对于左上图,若从顶点2开始做深度优先遍历,可以得到一棵深度优先生成树,其中的实线边构成这个深度优先树,虚线边表示回边
5
3
4
2
1
6
7
2
3
6
4
7
5
1
第5页,本讲稿共11页
关节点
在深度优先生成树中的某个顶点u,要么是根,要么不是根
先讨论顶点u是生成树的根
u是关节点的充要条件是:u有两棵或者两棵以上的子树。
判定方法:遍历过程中做访问标记。从顶点u相邻的某个顶点做遍历,当遍历结束时,所有顶点都做了访问标记,则说明u只有一棵子树,不是关节点,否则说明u至少有两棵子树,是关节点
第6页,本讲稿共11页
关节点
另一种情况,u不是深度遍历的根结点
假设v是u的一个孩子,则u是关节点的充要条件是:在v或者v的子孙结点和u的祖先结点之间不存在任何回边
如何来判定这个充要条件?
引入深度优先数和最低深度优先数的概念
第7页,本讲稿共11页
深度优先数
深度优先数是指在按照某种深度优先遍历的过程中,依次给每个顶点标个号,用DFN[u]表示
按照右图从顶点1开始做遍历,每个顶点的DFN[i]是多少呢?
2
3
6
4
7
5
1
第8页,本讲稿共11页
最低深度优先数
最低深度优先数用L[u]表示,定义如下:
DFN[u]
min{L[v]|在生成树中,v是u的孩子}
min{DFN[v]|在生成树中,v是u的双亲或(u,v)是一条回边}
L[u]=min
第9页,本讲稿共11页
关节点
在u不是深度优先生成树的根的前提条件下,若u存在一个孩子v,使得DFN[u]<=L[v]成立,则u是关节点
第10页,本讲稿共11页
练****br/>关节点(/)在一个无向连通图中,输入这个连通图的邻接矩阵形式,判断这个无向图中是否存在关节点,如果不存在,则输出“safe”,如果存在,则按照顶点编号由小到大输出关节点输入文件第一行为n,表示有n个顶点,接下来是个n×n的矩阵输出文件一行,如果无关节点,输出“safe”,如果有,则依次输出关节点编号,每个关节点中间用一个空格隔开样例输入:40 1 0 01 0 1 10 1 0 00 1 0 0样例输出:2
第11页,本讲稿共11页
关节点与重连通图 来自淘豆网www.taodocs.com转载请标明出处.