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

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

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

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

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

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

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

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

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

相关推荐
-dzk-1 小时前
【链表】LC 160.相交链表
数据结构·链表
AKA__Zas2 小时前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法
mifengxing2 小时前
Java 集合进阶(一)
java·开发语言·数据结构·复习笔记
risc1234564 小时前
序列化框架
数据结构
MIngYaaa5204 小时前
2026暑期牛客多校1 2026-7-17
数据结构·算法
wabs6664 小时前
关于图论【卡码网107.寻找存在的路线的思考】
数据结构·算法·图论
冻柠檬飞冰走茶6 小时前
PTA基础编程题目集 7-34 通讯录的录入与显示(C语言实现)
c语言·开发语言·数据结构·算法
白白白小纯16 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
雨雨雨雨雨别下啦18 小时前
C语言练习——数据结构
c语言·开发语言·数据结构·算法
阿米亚波20 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl