数据结构与算法之图论

1、基本概念

极大连通、极小连通、极大连通子图、极小连通子图、连通分量

  • 极大连通

    在无向图中,指的是任意两点都有直接或者间接的路径

  • 极小连通

    在无向图中,生成树就是一个极小连通;如果加一条边就会形成一个环,如果减一条边就会出现孤立的节点;n个节点应该有n-1条边

  • 极大连通子图和极小连通子图

    满足上述极大连通和极小连通的子图

  • 连通分量

    指的是极大连通子图的数目

  • 思考:假如一个图有n个节点

    如果边数小于n-1的话,此图必定是非连通图

    非连通图最多应该有 ( n − 1 ) ( n − 2 ) 2 \frac{(n-1)(n-2)}{2} 2(n1)(n2) 条边 ,解释:由n-1构成完全图,如果此时再加入一条边,那么就会形成连通图了

强连通图、强连通分量

  • 强连通图

    有向图中,任意两个顶点都有直接或者间接的路径到达(注意,路径是有方向的),此图称为强连通图

  • 强连通分量

    有向图的强连通子图的数量就是强连通分量,书上是说‘有向图的极大连通子图就是强连通分量’

    如下图所示,三个强连通分量 {1,2,3,4}, {5}, {6}

    image-20220516103614869

  • 思考:假如有n个节点的有向图

    强连通情况下,至少需要n条边;解释:构成一个环就行了,这样,任意两点直接都可循环到达。

生成树与最小生成树

  • 生成树

    无向图 G = ( V , E ) G = (V,E) G=(V,E)和无向图图 G 1 = ( V 1 , E 1 ) G^1 = (V^1, E^1) G1=(V1,E1),若 G 1 包 含 G G^1包含G G1G的所有顶点,且边是 G G G的子集,那么 G 1 就 是 G 的 生 成 树 G^1就是G的生成树 G1G

    生成树不唯一

    维基百科如下图定义

  • 最小生成树

    每条边都有权值,最小生成树就是最后生成的树,权值和最小


2、最小生成树算法

Prim算法

Kruskal算法

3、最短路径算法

Dijkstra算法

Floyd算法

4、拓扑排序与关键路径(AOV与AOE)

5、Graphviz简单介绍

Graphviz是用来可视化图和树的工具,常用.dot文件或者api进行操作,官网链接

用法一、dot文件使用

目前还不会使用这个软件,先挖坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值