数据结构清华大学课件chap7.ppt

数据结构清华大学课件chap7

7.6 两点之间的 最短路径问题 求从某个源点到其余各点的最短路径 7.4 (连通网的)最小生成树 假设要在 n 个城市之间建立通讯联络网,则连通 n 个城市只需要修建 n-1条线路,如何在最节省经费的前提下建立这个通讯网? 问题: 构造网的一棵最小生成树,即: 在 e 条带权的边中选取 n-1 条边(不构成回路),使“权值之和”为最小。 算法二:(克鲁斯卡尔算法) 该问题等价于: 算法一:(普里姆算法) 取图中任意一个顶点 v 作为生成树的根,之后往生成树上添加新的顶点 w。在添加的顶点 w 和已经在生成树上的顶点v 之间必定存在一条边,并且该边的权值在所有连通顶点 v 和 w 之间的边中取值最小。之后继续往生成树上添加顶点,直至生成树上含有 n-1 个顶点为止。 普里姆算法的基本思想: a b c d e g f 19 5 14 18 27 16 8 21 3 12 7 例如: a e d c b g f 14 8 5 3 16 21 所得生成树权值和 = 14+8+3+5+16+21 = 67 在生成树的构造过程中,图中 n 个顶点分属两个集合:已落在生成树上的顶点集 U 和尚未落在生成树上的顶点集V-U ,则应在所有连通U中顶点和V-U中顶点的边中选取权值最小的边。 一般情况下所添加的顶点应

文档评论(0)

1亿VIP精品文档

相关文档