利用深度优先搜索算法寻找割点

摘要:利用深度优先搜索去寻找割点.

(1)定义:什么叫做割点?割点的定义是针对无向连通图的.如果删除某一个节点后该图仍然是连通的,那么这个图是双连通的.否则被删除的节点叫做割点.

(2)寻找割点的基本思路:

[1]首先利用深度优先搜索给图进行编号.对每一个节点我们称它的编号为先序编号Num[v]。然后对深度搜索优先树每一个定点v计算它能够通过一条背向边或者树的零边或其他边达到的先序编号最低的顶点,称为Low[v];
[2]背向边的定义是:在深度优先搜索时对节点v的邻接节点访问,发现某个节点w已经被访问了,那么就有一条背向边(v,w).
[3]判定割点的定理与其证明:
{1}根是割点当前仅当它有多余一个的儿子(在优先生成树中),因为一个儿子不可能不通过根到达另一个儿子。试想:假设可能,那么它们之间就存在一条背向边,或者根的某个子孙通过背向边连接到根的另一棵子树.根据深度优先搜索的算法,只有根的某个子树上所有可能的点都被访问完,才会进入下棵子树(另一个儿子的儿子之间不会有背向边.
{2}如果非根节点,那么当且仅当它有某个儿子w使得Low[w]
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值