码迷,mamicode.com
首页 > 其他好文 > 详细

【数据结构】 最小生成树(一)——什么是最小生成树?

时间:2019-02-02 19:20:22      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:适用于   结构   数据   顶点   要求   不可   怎么   算法   image   

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

最小生成树的概念:

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

技术图片

  接着再看一幅图:

技术图片

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

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

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

【数据结构】 最小生成树(一)——什么是最小生成树?

标签:适用于   结构   数据   顶点   要求   不可   怎么   算法   image   

原文地址:https://www.cnblogs.com/TFLS-gzr/p/10348850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!