📜  数据结构和算法-生成树

📅  最后修改于: 2021-01-11 10:28:35             🧑  作者: Mango


生成树是图G的子集,图G的所有顶点都覆盖有尽可能少的边。因此,生成树没有周期,因此无法断开连接。

通过这个定义,我们可以得出一个结论,即每个连通和无向的图G至少都有一个生成树。断开连接的图没有任何生成树,因为它无法跨越到其所有顶点。

生成树

我们从一张完整的图上发现了三棵生成树。一个完整的无向图最多可以具有n个n-2个生成树,其中n是节点数。在上述示例中, n为3,因此3 3-2 = 3棵生成树是可能的。

生成树的一般属性

现在我们了解到,一个图可以具有多个生成树。以下是连接到图G的生成树的一些属性-

  • 连通图G可以具有一个以上的生成树。

  • 图G的所有可能的生成树都具有相同数量的边和顶点。

  • 生成树没有任何循环(循环)。

  • 从生成树中删除一条边将使图断开连接,即,生成树已最小连接

  • 在生成树上添加一条边会创建一个电路或环路,即生成树最大程度是非循环的

生成树的数学性质

  • 生成树具有n-1个边,其中n是节点(顶点)的数量。

  • 从一个完整的图中,去掉最大e-n+ 1条边,我们可以构建生成树。

  • 一个完整的图最多可以包含n n-2个生成树。

因此,我们可以得出结论,生成树是已连接图G的子集,而未连接图没有生成树。

生成树的应用

生成树基本上用于查找连接图中所有节点的最小路径。生成树的常见应用是-

  • 民用网络规划

  • 计算机网络路由协议

  • 聚类分析

让我们通过一个小例子来理解这一点。考虑一下,城市网络是一个巨大的图,并且现在计划以这样的方式部署电话线:以最少的线路我们可以连接到所有城市节点。这是生成树出现的地方。

最小生成树(MST)

在加权图中,最小生成树是比同一图的所有其他生成树具有最小权重的生成树。在现实世界中,可以将这种权重度量为距离,拥塞,交通负荷或任何表示边缘的任意值。

最小生成树算法

我们将在这里了解两种最重要的生成树算法-

两者都是贪婪算法。