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

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

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

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

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

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

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

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

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

相关推荐
2401_841495644 小时前
【数据结构】红黑树的基本操作
java·数据结构·c++·python·算法·红黑树·二叉搜索树
C++chaofan6 小时前
项目中为AI添加对话记忆
java·数据结构·人工智能·redis·缓存·个人开发·caffeine
失散139 小时前
软件设计师——03 数据结构(下)
数据结构·软考·图论·软件设计师
yiqiqukanhaiba10 小时前
Linux编程笔记2-控制&数组&指针&函数&动态内存&构造类型&Makefile
数据结构·算法·排序算法
高山上有一只小老虎12 小时前
输出单向链表中倒数第k个结点
java·数据结构·链表
Algo-hx12 小时前
数据结构入门 (五):约束即是力量 —— 深入理解栈
数据结构·算法
我要用代码向我喜欢的女孩表白13 小时前
数据结构13003考前急救
数据结构
NiKo_W14 小时前
C++ 反向迭代器模拟实现
开发语言·数据结构·c++·stl
YA10JUN14 小时前
C++版搜索与图论算法
c++·算法·图论
Boop_wu14 小时前
[数据结构] 排序
数据结构·算法·排序算法