【数据结构】求有向图强连通分量的方法

求有向图强连通分量的方法

首先强连通分量的定义是:

在有向图中,若有一对顶点V和W,从V到W和从W到V之间都有路径,则称这两个顶点式强连通的。若图中任意一对顶点都是强连通的,则称此图为强连通图。有向图中的极大强连通子图称为有向图的强连通分量。

值得注意的是,由于单个顶点不存在顶点之间的路径问题,所以单个顶点构成的图是强连通图,称为平凡的强连通图。

由定义可知,有向图中的极大强连通子图称为有向图的强连通分量,强调在有向图中每一对顶点间都存在双向路径。

因此求强连通分量的数量,可以找到入度或出度为0的顶点,然后删除该顶点和其对应的弧,直到不存在入度或出度为0的顶点。

删掉的顶点以及剩下的有向图,就是强连通分量

例如上图,将1号结点以及对应的弧删掉后,剩下的图找不到入度或出度为0的顶点,因此改图的强连通分量有2个

相关推荐
wu_asia33 分钟前
方阵对角线元素乘积计算
数据结构·算法
想逃离铁厂的老铁1 小时前
Day43 >> 300.最长递增子序列 + 674. 最长连续递增序列+ 718. 最长重复子数组
数据结构·算法
宵时待雨2 小时前
数据结构(初阶)笔记归纳4:单链表的实现
c语言·开发语言·数据结构·笔记·算法
wm10432 小时前
代码随想录第三天 链表
数据结构·链表
BLSxiaopanlaile2 小时前
关于子集和问题的几种解法
数据结构·算法·剪枝·回溯·分解
long3162 小时前
弗洛伊德·沃肖算法 Floyd Warshall Algorithm
java·后端·算法·spring·springboot·图论
じ☆冷颜〃3 小时前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
txzrxz3 小时前
数据结构有关的题目(栈,队列,set和map)
数据结构·c++·笔记·算法··队列
CoderCodingNo3 小时前
【GESP】C++五级练习题(前缀和) luogu-P1114 “非常男女”计划
数据结构·c++·算法
我是大咖3 小时前
关于柔性数组的理解
数据结构·算法·柔性数组