用Kruskal算法构造最小生成树

本文通过实例详细解析了如何使用Kruskal算法构造最小生成树。首先介绍问题背景,接着阐述算法步骤,包括按边权值排序、顶点集合合并等关键操作,并通过具体例子展示算法过程,最后探讨了算法设计的要点。
摘要由CSDN通过智能技术生成

用Kruskal算法构造最小生成树

1. 问题
举一个实例,画出采用Kruskal算法构造最小生成树的过程,并按实验报告模板编写算法。
2. 解析
假设N=(V,{E})是连通网,将N中的边按权值从小到大的顺序排列;
1)将n个顶点看成n个集合;
2)按权值由小到大的顺序选择边,所选边应满足两个顶点不在同一个顶点集合内,将该边放到生成树边的集合中。同时将该边的两个顶点所在的顶点集合合并;
3)重复2),直到所有的顶点都在同一个顶点集合内。
在这里插入图片描述

  1. V0和V2不在同一个集合,则选择最小权值1的(0,2)
    在这里插入图片描述
  2. V3和V5不在同一个集合,则选择最小权值2的(3,5)
    在这里插入图片描述
  3. V1和V4不在同一个集合,则选择最小权值3的(1,4)
    在这里插入图片描述
  4. V2和V5不在同一个集合,则选择最小权值4的(2,5)
    在这里插入图片描述
  5. ⑤ V0和V3在一个集合里,若连接则闭环,所以舍弃
    V1和V1不在同一个集合,则选择最小权值5的(1,2)

在这里插入图片描述
对于有6个顶点的最小生成树一共有5条边,则已经构成一棵最小生成树在这里插入图片描述
3. 设计

void minSpanTree_kruskal(MatGraph &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值