【数据结构】最小生成树的概念

简介: 【数据结构】最小生成树的概念

最小生成树


1、基本概念


🐋树的特性


1)连通图的生成树(Spanning Tree)


2)是图的极小连通子树,它包含图中的全部顶点,但只有构成一颗树的边(极小连通子树:边是最少的,不能在少,否则不连通)


3)生成树又是图的极大无回路子图,它的边集是关联图中的所有顶点而又没有形成回路的边。


(极大无回路子图:边不能在多,再多,就回路)


4)一个有n个顶点的连通图的生成树只能有n-1条边。


若有n个顶点而少于n-1条边,则是非连通图。


若多余n-1条边,则一定形成回路。


有n-1条边的生成子图并不一定是生成树。


5)图的生成树不是唯一的。


6)连通图生成树,根据遍历方式分为:


由广度优先遍历得到的生成树,称为广度优先生成树。


由深度优先遍历得到的生成树,称为深度优先生成树。


365438be5f0f4dda912e47a5dbdadd11.png


7)非连通图的生成森林


对于非连通图,每一个连通分量中的顶点集和遍历时经过的边一起构成若干棵生成树,这些生成树组成了该非连通图的生成森林。


8)非连通图生成森林,根据遍历方式分为:


由广度优先遍历得到的生成森林,称为广度优先生成森林。


由深度优先遍历得到的生成森林,称为深度优先生成森林。


🐋最小生成树

问题:


假设要在n个城市之间建立通讯联络网,则连通n个城市只需要修建n-1条线路,如何在最节省经费的前提下建立这个通讯网?


等效问题:


构建网的一颗最小生成树,即:在e条带权的边中选取n-1条边(不构成回路),使权值之和为最小?


最小生成树:


1)在一个网的所有生成树中,权值总和最小的生成树称为最小代价生成树,也称为最小生成树。


2)构建最小生成树的准则:


1. 只能使用该图中的边构造最小生成树


2. 当且仅当使用n-1条边来连接图中的n个顶点


3. 不能使用产生回来的边。


3)求图的最小生成树的典型算法:


克鲁斯卡尔(Kruskal)算法


df634b51b6f0443abf4cea9bf8badc63.png


普里姆(Prim)算法


5fe7ed76c50f4947bd170d3fe7d2deff.png


注:考虑问题的出发点相同:为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能的小。


相关文章
|
1月前
|
存储 算法
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
这篇文章详细介绍了图的概念、表示方式以及深度优先遍历和广度优先遍历的算法实现。
52 1
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
41 1
|
5月前
|
存储 算法 Linux
【数据结构和算法】---二叉树(1)--树概念及结构
【数据结构和算法】---二叉树(1)--树概念及结构
50 0
|
1月前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(三)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
1月前
|
存储
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(二)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
1月前
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(一)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
|
1月前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
47 0
|
3月前
|
存储
【初阶数据结构篇】二叉树基础概念
有⼀个特殊的结点,称为根结点,根结点没有前驱结点。
48 1
|
4月前
|
存储
【数据结构】树和二叉树的概念及结构
数据结构——树和二叉树的概念及结构
75 3
【数据结构】树和二叉树的概念及结构
|
5月前
|
搜索推荐 算法
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)