第7章图n

学习目标 掌握图的概念、存储结构、操作实现及算法复杂度; 掌握图的深度、广度优先搜索遍历算法; 掌握图的生成树概念,普里姆算法、克鲁斯卡算法。 掌握图的拓扑排序方法 例:画出有向图的十字链表。 7.4 (连通网的)最小生成树 假设要在 n 个城市之间建立通讯联络网,则连通 n 个城市只需要修建 n-1条线路,如何在最节省经费的前提下建立这个通讯网? 问题: 构造网的一棵最小生成树,即: 在 e 条带权的边中选取 n-1 条边(不构成回路),使“权值之和”为最小。 算法二:(克鲁斯卡尔算法) 该问题等价于: 算法一:(普里姆算法) 取图中任意一个顶点 v 作为生成树的根,之后往生成树上添加新的顶点 w。在添加的顶点 w 和已经在生成树上的顶点v 之间必定存在一条边,并且该边的权值在所有连通顶点 v 和 w 之间的边中取值最小。之后继续往生成树上添加顶点,直至生成树上含有 n-1 个顶点为止。 普里姆算法的基本思想: 在生成树的构造过程中,图中 n 个顶点分属两个集合:已落在生成树上的顶点集 U 和尚未落在生成树上的顶点集V-U ,则应在所有连通U中顶点和V-U中顶点的边中选取权值最小的边。 一般情况下所添加的顶点应满足下列条件: a b c d e g f 例如: 19 5 14 18 27 16 8 21 3

文档评论(0)

1亿VIP精品文档

相关文档