资源介绍
一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。
当用联通网来表示n个城市以及n个城市间可能设置的通信线路,其中网的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的代价。对于n个顶点的联通网可以建立许多不同的生成树,每一棵生成树都可以是一个联通网。
而一棵最小生成树就是,树上各边的权值之和最小,即寻找最小生成树就是构造联通网的最小代价生成树。
普利姆(Prim)算法
指定一个起点,且假定这点是已选顶点,然后反复在满足如下条件的边中选择一条最小边,直到所有顶点成为已选顶点为止(选择n-1条边):一端已选,另一端未选。
克鲁斯卡尔(Kruskal)算法
反复在满足如下条件的边中选出一条最小的、且和已选边不构成回路边,直到全部顶点均被选中。
基本要求:
(1)编程创建一幅图。
(2)输出创建的图。
(3)编写Prim算法代码,实现图的最小生成树求解,且输出最小生成树。
扩展要求:
(1)编写Kruskal算法代码,实现图的最小生成树求解,且输出最小生成树。
- 上一篇: 携程开源DAL代码生成器 2016-10-11
- 下一篇: 携程开源DAL代码生成器