- 数据结构与算法
- DSA - 首页
- DSA - 概述
- DSA - 环境设置
- DSA - 算法基础
- DSA - 渐进分析
- 数据结构
- DSA - 数据结构基础
- DSA - 数据结构和类型
- DSA - 数组数据结构
- 链表
- DSA - 链表数据结构
- DSA - 双向链表数据结构
- DSA - 循环链表数据结构
- 栈与队列
- DSA - 栈数据结构
- DSA - 表达式解析
- DSA - 队列数据结构
- 搜索算法
- DSA - 搜索算法
- DSA - 线性搜索算法
- DSA - 二分搜索算法
- DSA - 插值搜索
- DSA - 跳跃搜索算法
- DSA - 指数搜索
- DSA - 斐波那契搜索
- DSA - 子列表搜索
- DSA - 哈希表
- 排序算法
- DSA - 排序算法
- DSA - 冒泡排序算法
- DSA - 插入排序算法
- DSA - 选择排序算法
- DSA - 归并排序算法
- DSA - 希尔排序算法
- DSA - 堆排序
- DSA - 桶排序算法
- DSA - 计数排序算法
- DSA - 基数排序算法
- DSA - 快速排序算法
- 图数据结构
- DSA - 图数据结构
- DSA - 深度优先遍历
- DSA - 广度优先遍历
- DSA - 生成树
- 树数据结构
- DSA - 树数据结构
- DSA - 树遍历
- DSA - 二叉搜索树
- DSA - AVL树
- DSA - 红黑树
- DSA - B树
- DSA - B+树
- DSA - 伸展树
- DSA - 字典树
- DSA - 堆数据结构
- 递归
- DSA - 递归算法
- DSA - 使用递归实现汉诺塔
- DSA - 使用递归实现斐波那契数列
- 分治法
- DSA - 分治法
- DSA - 最大最小问题
- DSA - Strassen矩阵乘法
- DSA - Karatsuba算法
- 贪心算法
- DSA - 贪心算法
- DSA - 旅行商问题(贪心算法)
- DSA - Prim最小生成树
- DSA - Kruskal最小生成树
- DSA - Dijkstra最短路径算法
- DSA - 地图着色算法
- DSA - 分数背包问题
- DSA - 带截止日期的作业排序
- DSA - 最佳合并模式算法
- 动态规划
- DSA - 动态规划
- DSA - 矩阵链乘法
- DSA - Floyd-Warshall算法
- DSA - 0-1背包问题
- DSA - 最长公共子序列算法
- DSA - 旅行商问题(动态规划)
- 近似算法
- DSA - 近似算法
- DSA - 顶点覆盖算法
- DSA - 集合覆盖问题
- DSA - 旅行商问题(近似算法)
- 随机化算法
- DSA - 随机化算法
- DSA - 随机化快速排序算法
- DSA - Karger最小割算法
- DSA - Fisher-Yates洗牌算法
- DSA有用资源
- DSA - 问答
- DSA - 快速指南
- DSA - 有用资源
- DSA - 讨论
生成树
什么是生成树?
生成树是图G的一个子集,它包含所有顶点,并且边数最少。因此,生成树不包含环路,并且不能是断开的。
根据这个定义,我们可以得出结论,每个连通且无向的图G至少有一棵生成树。断开的图没有任何生成树,因为它无法扩展到所有顶点。
我们找到了一个完整图的三个生成树。一个完整的无向图最多可以有nn-2个生成树,其中n是节点数。在上面提到的例子中,n是3,因此可以有33−2 = 3个生成树。
生成树的一般属性
现在我们了解了一个图可以有多个生成树。以下是与图G相关的生成树的一些属性:
一个连通图G可以有多个生成树。
图G的所有可能的生成树具有相同数量的边和顶点。
生成树不包含任何环路(回路)。
从生成树中移除一条边将使图断开,即生成树是最小连通的。
向生成树中添加一条边将创建一个回路或环路,即生成树是最大无环的。
生成树的数学性质
生成树有n-1条边,其中n是节点(顶点)的数量。
从一个完整图中,通过移除最多e - n + 1条边,我们可以构建一棵生成树。
一个完整图最多可以有nn-2个生成树。
因此,我们可以得出结论,生成树是连通图G的一个子集,而断开的图没有生成树。
生成树的应用
生成树主要用于找到连接图中所有节点的最小路径。生成树的常见应用包括:
民用网络规划
计算机网络路由协议
聚类分析
让我们通过一个简单的例子来理解这一点。假设城市网络是一个巨大的图,现在计划以最少的线路部署电话线路,以便连接到所有城市节点。这就是生成树发挥作用的地方。
最小生成树 (MST)
在带权图中,最小生成树是指权重小于同一图中所有其他生成树的生成树。在现实情况下,此权重可以测量为距离、拥塞、交通负载或分配给边的任何任意值。
最小生成树算法
我们将在本文中学习两种最重要的生成树算法:
这两种算法都是贪心算法。
广告