zoukankan      html  css  js  c++  java
  • 7-6-有向图强连通分量的Kosaraju算法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分

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

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

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

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

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

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

          文档中源码及测试数据存放目录:数据结构▲课本算法实现▲07 图6 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(有向图的强连通分量测试数据)

     

    测试结果展示

     

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

  • 相关阅读:
    个人项目实战
    准备
    结队项目-第一次作业
    第三次作业--团队展示
    软件工程实践第二次作业
    软件工程实践第一次作业
    circle
    calculator
    视频课程学习及学习计划
    1001.A+B Format (20)
  • 原文地址:https://www.cnblogs.com/kangjianwei101/p/5287301.html
Copyright © 2011-2022 走看看