数据结构 最小生成树——什么是最小生成树?

Posted tfls-gzr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构 最小生成树——什么是最小生成树?相关的知识,希望对你有一定的参考价值。

  小编近日翻书,看见最小生成树问题,小编表示茫然不知最小生成树是干什么,看字面意思猜最小生成树就是自己造一棵树呗,然后,然后……就不知道有什么用处了;听着这个名字就一直当做是一种关于树的知识,没想到竟然和图也有关系,什么关系呢?又要用在何处呢?说来话长……

最小生成树的概念:

  这个概念可是很难说啊,光看一堆百度上枯燥的文字倒不用说了,这得从一个情景导入:假设你是XX探险队的大队长,有一天你突发奇想要在各个探险营地放上一个无线通信设备(有时在诸如北极的地区通信是件麻烦事),这个通信设备还受到距离要求,最大距离越远就造价越高,现在你要干的工作就是用最少的钱让每一个探险营地都能直接/间接地与其他任何一个营地通讯。随便画张图加深理解:

技术图片

  接着再看一幅图:

技术图片

  这幅图相比来说有了权值,放在之前我现编的故事中则是每两营地之间通信所要画的钱;随便画出了个图,图也有了,故事也有了,怎么算呢?不着急,先来说几个问题:假设这图里一共有n个顶点,那一共有多少条边呢,谁也不知道,数据样例组数可多的呢,但要说起连接这n个顶点最少会有几条边呢?当然是n-1条边;既然要通信,还可以间接,比如1传给2,2传给3,那么1,3之间也可以通信,那有何必要回路呢?没有回路的图就不是真正的图,没有回路的图那不就是树吗?所以这才叫最小生成;“最小生成树”这个名字得分开看,拆成“最小”和“生成树”,先讲一讲什么是生成树:生成树要满足图中的n个顶点都在生成的树中,且生成树必须是一颗树,不允许有回路,那么问题来了,生成树是唯一的吗?不是!如下图所示,红色部分点亮的边为生成树的边,这几幅图都是生成树,可见生成树是不唯一的,在故事中求的是最小花费,所以才引来了最小二字;紧接着,咱们来说一说什么是最小?这个相对来说更容易理解,说白了就是在所有生成树中挑一棵权值和最小的,但是,最小生成树是唯一的吗?不一定!假如一棵树所有边权值都一样,我才不信只有一个最小生成树呢!忘了强调一点,求最小生成树的前提是这个图是联通图,假设有一点与其他点没有连边,就不可能凑够n-1条边那么了解了最小生成树是什么,但是又能适用于哪些问题呢?就像小编最初现编的故事一样,要求最小权重的题。

  技术图片技术图片技术图片

  了解了什么是最小生成树及其用处,那么如何计算最小生成树,又要用什么算法?欲知后事如何,且听下回分解。

以上是关于数据结构 最小生成树——什么是最小生成树?的主要内容,如果未能解决你的问题,请参考以下文章

什么样的图最小生成树唯一?

❤️数据结构入门❤️(3 - 4)- 最小生成树

数据结构图---最小生成树(普里姆算法)

图的最小生成树(普利姆prim算法)

基础-11:最小生成树(MST)

数据结构一道题 根据最小生成树的Mst性质,可以得出 A最长边不包含于任一棵最小生成树 B最短边闭