数据结构——最小生成树和最短路径

生成树

由深度优先遍历得到的为深度优先生成树。
由广度优先遍历得到的为广度优先生成树。
一个连通图的生成树可能不唯一,由不同的遍历次序、从不同顶点出发进行遍历都会得到不同的生成树。
对于非连通图,通过图的遍历,将得到的是生成森林。

最小生成树

生成树的代价: 设G=(V,E)是一个无向连通网,生成树上各边的权值之和称为该生成树的代价。
最小生成树: 在图G所有生成树中,代价最小的生成树称为最小生成树。
MST( minimum spanning tree)性质:
假设G=(V, E)是一个无向连通网,U是顶点集V的一个非空子集。若(u, v)是一条具有最小权值的边,其中u∈U,v∈V-U,则必存在一棵包含边(u, v)的最小生成树。
构造最小代价生成树两种方法:
Prim法:加点法
Prim代码实现
Kruskal方法:加边法
Kruskal代码实现

最短路径

在非网图中,最短路径是指两顶点之间经历的边数最少的路径。
在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径。
源点到其他顶点的最短路径
Dijkstra方法,O(n2)

任意一对顶点之间的最短路径
Floyed方法,O(n3)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值