实习五 管道铺设施工的最佳方案选择
[问题描述]
需要在某个城市的 n 个居民区之间铺设煤气管道, 则在这 n 个居民区之间只要铺设 n-1
条管道即可。 假设任意两个居民区之间都可以架设管道, 但由于地理环境的不同, 所需经费
不同。选择最优的施工方案能使总投资尽可能少,这个问题即为求网的“最小生成树” 。
[基本要求]
求解的算法为: 在可能架设的 m条管道中选取 n-1 条,即能连通 n-1 个居民区, 又使总
投资达到“最小” 。网采用邻接矩阵为存储结构,以顶点对( i,j )的形式输出最小生成树的
边。
[测试数据]
测试选用下图居民区示意图的数据。
[实现提示]
可以选用克鲁丝卡尔算法或普里姆算法来求最小生成树,无论哪一个算法都要选好恰
当的辅助数据结构, 以存放边或顶点的集合。 若采用克鲁丝卡尔算法, 则为选取当前权值最
小的边,还要对边按权值进行非减序的排列。
[问题讨论]