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

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

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

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

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

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

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

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

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

相关推荐
摆烂且佛系1 小时前
B+树的“页分裂“机制
数据结构·b树
福尔摩斯张2 小时前
C++核心特性精讲:从C语言痛点出发,掌握现代C++编程精髓(超详细)
java·linux·c语言·数据结构·c++·驱动开发·算法
历程里程碑4 小时前
C++ 9 stack_queue:数据结构的核心奥秘
java·开发语言·数据结构·c++·windows·笔记·算法
仰泳的熊猫4 小时前
1108 Finding Average
数据结构·c++·算法·pat考试
晨晖25 小时前
顺序栈的入栈函数
数据结构
hweiyu005 小时前
数据结构:后缀自动机
数据结构
小尧嵌入式5 小时前
C语言中的面向对象思想
c语言·开发语言·数据结构·c++·单片机·qt
花月C5 小时前
基于Redis的BitMap数据结构实现签到业务
数据结构·数据库·redis
一杯美式 no sugar5 小时前
数据结构——单向无头不循环链表
c语言·数据结构·链表
ss2735 小时前
阻塞队列:三组核心方法全对比
java·数据结构·算法