一:实验目的
(1) 掌握生成树的概念
(2) 掌握最小生成树的基本思路
(3) 能够利用最小生成树解决问题
二:实验内容
(1)现有一张城市地图,图中的顶点为城市,无向边代表两个城市之间的连通关系,边上的权代表公路造价,图中作一对城市都是连通的,现在用公路把城市连接起来,要求工程造价最小,采用普利姆算法或克鲁卡尔算法生成最小生成树
三:实验要求
(1)根据实验要求编写程序,主机调试并获得运行结果
(2)撰写实验报告
四:程序清单、调试和测试结果及分析
#include<cstdio>
#include<cstdlib>
typedef int Vertype;
const int MAXNUM=100; //图的最大边数
const int MAXSIZE=20; //图的最大顶点数
typedef struct{
Vertype v1,v2; //图的两个顶点
int weight; //两点间边的权值
}EdgeType;
void KruskaMiniSpanTree(EdgeType Alledges[MAXNUM],int n,int e)//前提:数组有序
//n为图的顶点个数,e为图的边数
{
int m1,m2,sn1,sn2,k,j;
int vest[MAXSIZE]; //构造辅助数组
for(int i=0;i<n;i++) //初始化辅助数组
vest[i]=i;
k=1;