图——生成树和最小生成树 (概念解析)
2015-11-27 08:53
267 查看
/* *Copyright (c) 2015 , 烟台大学计算机学院 *All right resvered . *文件名称: 生成树和最小生成树 *作 者: 郑兆涵 *图——生成树和最小生成树 */
1.生成树的概念
一个连同图的生成树是该连通图的一个极小连同子图,它含有图中全部顶点,但只有构成一棵树的(n-1)条边.如果在一棵生成树9上添加一条边,必定构成一个环,因为这条边使得它依附的那两个顶点之间有了第二条路径.一棵有n个顶点的生成树(连通无回路图)有且仅有(n-1)条边,但是,有(n-1)条边的图不一定都是生成树.一个图有n个顶点,如果它由小于(n-1)条边,则是非连通图;如果它有多于(n-1)条边,则一定有回路.
对于一个带权(假定每条边上的权值均为大于零的实数)连通无向图G中的不同生成树,各树的边上的权值之和可能不同,边上的权值之和最小的树称为该图的最小生成树.
按照生成树的定义,n个顶点的连通图的生成树有n个顶点和(n-1)条边.因此构造最小生成树的准则有三条:
(1) 必须只使用该图中的边来构造最小生成树;
(2) 必须使用且仅使用(n-1)条边来连接图中的n个顶点;
(3) 不能使用产生回路的边.
2.无向图的连通分量和生成树
在对无向图进行遍历时,若是连通图,仅需调用遍历过程(DFS深度优先遍历或BFS广度优先遍历)一次,从图中任一顶点出发,便可以遍历图中的各个顶点;若是非连同图,则需要多次调用遍历过程,每次调用得到的顶点集连同的相关的边就构成图的一个连同分量.
设G=(V,E)为连通图,则从中任一顶点出发遍历图时,必定将E(G)分成两个集合T和B,其中T是遍历过程中走过的边的集合,B是剩余的边的集合:T∩B=∅,T∪B=E(G).显然,G'=(V,T)是G的极小连通子图,即G'是G的一棵生成树.
由深度优先遍历得到的生成树称为深度优先生成树;由广度优先遍历得到的生成树称为广度优先生成树.这样的生成树是由遍历时访问过的n个顶点和遍历时经过的(n-1)条边组成的.
对于非连通图,每个连通分量中的顶点集和遍历是走过的边一起构成一棵生成树,各个连通分量的生成树组成非连通图的生成森林.
相关文章推荐
- 使用Java生成jpg与压缩图片为jpg文件的代码示例
- leetcode_Longest Increasing Subsequence
- 第七周项目6-停车场模拟
- 第六周项目二:建立链栈算法库
- 第十三周 项目4-Floyd算法的验证
- 卡方检验文本特征选择
- 基于Mock Server的前后端分离
- 快速排序
- .net等比缩放生成缩略图的方法
- 刷爆款的悲哀 南方黑芝麻靠自黑自救?
- Julia: bug? => split ,isnumber
- 第十二周项目2 操作用邻接表存储的图
- web应用接口开发参数签名方式(二)
- JDBC连接数据库实现删除功能
- JAVA环境配置
- 第十二周项目3——图的遍历(1)-深度优先
- 周末我要去跑步
- 导库中的一个表
- web应用接口开发参数签名方式(一)
- win10无法启动安全中心该怎么办?