7-6-有向图强连通分量的Kosaraju算法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版...

课本源码部分

第7章  图 - 有向图强连通分量的Kosaraju算法

——《数据结构》-严蔚敏.吴伟民版

       源码使用说明  链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

       课本源码合辑  链接☛☛☛ 《数据结构》课本源码合辑

       习题集全解析  链接☛☛☛ 《数据结构题集》习题解析合辑

 

       本源码引入的文件  链接☛ OLGraph.c

 

      文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲07 图\06 StronglyConnectedComponents

 

概述

       用Kosaraju算法生成有向图的强连通分量时,需要用到十字链表存储有向图,因为这种结构方便逆置有向图。

解析

       有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。

       求有向图强连通分量的通用算法是Kosaraju算法,其比较关键的部分是同时应用了原图G和反图GT。步骤一:先用对原图G进行深搜形成森林(树),步骤二:任选一棵树对其进行深搜(注意这次深搜节点A能往子节点B走的要求是EAB存在于反图GT),能遍历到的顶点就是一个强连通分量。余下部分和原来的森林一起组成一个新的森林,继续步骤2直到 没有顶点为止。

源码

       文件一 ☛  SCC.h 

 

       文件二 ☛  SCC.c 

 

       文件三 ☛  SCC-main.c (测试文档)

 

       文件四 ☛  TestData_DG_OL.txt(有向图的强连通分量测试数据)

 

测试结果展示

 

       更多章节持续更新中...

你可能感兴趣的:(7-6-有向图强连通分量的Kosaraju算法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版...)