有向图的强连通分量(邻接矩阵图表示法)

有向图的强连通分量的求解是个经典问题,但是如果不深刻算法的道理,很难自己实现出来。

首先解释下算法的道理。

1、什么是强连通分量?书上定义是其中任意两个点可以相互到达的一个顶点集合。如果形象化的描述,强连通是这样的一种点的集合,这些顶点是由若个个环扩展来的(想象下图形),比如一个环A→B→C→A,然后再环的基础上加一条起点与终点都在环上的路径(如B→E→F→C),那么这个图形仍然是强联通的,用这种方法一直扩展到找不到这样的路径了,就找到了一个极大强连通分量。

2、怎么在强联通分量的基础上理解图?我们知道了强连通分量的直观理解了,如何在此基础上组成图呢,显然如果图包含了多个强连通分量,那么把这些强联通分量看成一个点,那么这些点肯定不能组成环(否则就连通起来了),不能有环的图等价于一个拓扑图(拓扑图的定义省略了)。总而言之,图就是由多多个强连通分量组成的拓扑序列。

3、什么是图的逆转?图的逆转就是把图中所以边的方向逆转。在理解前两点的基础上,我们知道把一个图逆转后,他的强连通分量是不变的。为什么?因为对于环来说只是换了个旋转方向,对于拓扑序列(由强联通分量之间组成)来说,逆向也不会产生环。

4、为什么深度优先遍历会体现图的结构?书上总是说深度优先遍历能体现图的结构,怎么体现的呢,对于有向图来说,体现的是顶点的拓扑排序。在深度优先遍历过程中有一个回溯过程,每次回溯的时候是当前顶点结束访问的时候。我们还是以强联通分量组成的拓扑系列才思考图,假设有三个强连通分量C1 C2 C3,他们的拓扑排序为C1→C2→C3,假设我们从C2中

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值