C语言实现最小生成树

一:实验目的

(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;
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值