#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<vector>
#include<time.h>
#define INF 0x3f3f3f
using namespace std;
int edge[][];
int lowcost[];
int index[];
int v,e,a,b,c;
void prim()
{
int minm,idx;
index[]=;
lowcost[]=;
for(int i=; i<v; i++)
{
lowcost[i]=edge[i][];
index[i]=;
}//初始化
for(int i=; i<v; i++)
{
// cout<<endl;
minm=INF;
for(int j=; j<v; j++)
{
// cout<<"=============="<<j<<" "<<lowcost[j]<<endl;
if(lowcost[j]!=&&lowcost[j]<minm)
{
minm=lowcost[j];
idx=j;
// cout<<idx<<endl;
} }
// cout<<index[idx]<<" , "<<idx<<" "<<lowcost[idx]<<endl;
lowcost[idx]=; for(int j=; j<v; j++)
{
if(lowcost[j]!=&&edge[j][idx]<lowcost[j])
{ lowcost[j]=edge[j][idx];
index[j]=idx;
//cout<<"j "<<j<<endl;
} }
}
for(int i=; i<v; i++)
{
cout<<i<<"----->"<<index[i]<<endl;
} } int main()
{ cin>>v>>e;
memset(edge,INF,sizeof(edge));
for(int i=; i<e; i++)
{
cin>>a>>b>>c;
edge[a][b]=edge[b][a]=c;
}
prim(); } /*

9 15
0 1 10
0 5 11
1 6 16
5 6 17
1 2 18
1 8 12
2 3 22
8 3 21
6 3 24
6 7 19
5 4 26
3 7 16
4 7 7
3 4 20
2 8 8

*/


kruskal

#include <stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct ae
{
int f,t,w;
} eg;
eg edge[];
int parent[];
int m,n,a,b,c;//m个点,n条边
int cmp(eg a,eg b )
{
return a.w<b.w;
} int find(int f)
{
while(parent[f]>)
f=parent[f];
return f;
} void kruskal()
{
sort(edge,edge+n,cmp);
for(int i=; i<m; i++)
parent[i]=;
for(int i=; i<n; i++)
{
int bg=find(edge[i].f);
int ed=find(edge[i].t);
if(bg!=ed)
{
parent[bg]=ed;
printf("from: %d to: %d weight: %d\n",edge[i].f,edge[i].t,edge[i].w);
}
}
} int main()
{ cin>>m>>n;
for(int i=; i<n; i++)
{
scanf("%d%d%d",&a,&b,&c);
edge[i].f=a;edge[i].t=b;edge[i].w=c;
}
kruskal();
}

/*
有错
4 4
1 0 1
2 0 2
2 3 4
1 3 3
*/

 

prim /kruskal 最小生成树的更多相关文章

  1. 最小生成树(prim&kruskal)

    最近都是图,为了防止几次记不住,先把自己理解的写下来,有问题继续改.先把算法过程记下来: prime算法:                  原始的加权连通图——————D被选作起点,选与之相连的权值 ...

  2. 数据结构学习笔记05图(最小生成树 Prim Kruskal)

    最小生成树Minimum Spanning Tree 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 树: 无回路   |V|个顶 ...

  3. Prim和Kruskal最小生成树

    标题: Prim和Kruskal最小生成树时 限: 2000 ms内存限制: 15000 K总时限: 3000 ms描述: 给出一个矩阵,要求以矩阵方式单步输出生成过程.要求先输出Prim生成过程,再 ...

  4. 最小生成树详解 prim+ kruskal代码模板

    最小生成树概念: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里 ...

  5. 最小生成树 Prim Kruskal

    layout: post title: 最小生成树 Prim Kruskal date: 2017-04-29 tag: 数据结构和算法 --- 目录 TOC {:toc} 最小生成树Minimum ...

  6. 最小生成树算法详解(prim+kruskal)

    最小生成树概念: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里 ...

  7. Kruskal 最小生成树算法

    对于一个给定的连通的无向图 G = (V, E),希望找到一个无回路的子集 T,T 是 E 的子集,它连接了所有的顶点,且其权值之和为最小. 因为 T 无回路且连接所有的顶点,所以它必然是一棵树,称为 ...

  8. 贪心算法(2)-Kruskal最小生成树

    什么是最小生成树? 生成树是相对图来说的,一个图的生成树是一个树并把图的所有顶点连接在一起.一个图可以有许多不同的生成树.一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n ...

  9. [算法系列之二十七]Kruskal最小生成树算法

    简单介绍 求最小生成树一共同拥有两种算法,一个是就是本文所说的Kruskal算法,还有一个就是Prime算法. 在具体解说Kruskal最小生成树算法之前,让我们先回想一下什么是最小生成树. 我们有一 ...

随机推荐

  1. 拒绝枯燥,有意思的 Loading 页面动效设计

    互联网时代,网络“提速”日益频繁,人们打开Web或软件的速度越来越快,一般页面缓冲和加载地过程也是几不可查.然而,在某些情况下,例如软件急需加载大量页面,首页急需加载大量内容,用户下载文件过大,甚至是 ...

  2. Requests接口测试-对cookies的操作处理(一)

    大家都对cookie都不陌生,我们本篇文章使用requests结合cookie进行实例演示.我们使用一个接口项目地址,因为接口项目涉及到隐私问题,所以这里接口的地址我暂时不会给大家开放,但是我会给大家 ...

  3. python + selenium + Js 处理轮动条

    selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...

  4. win32多线程-异步(asynchronous) I/O

    I/O设备是个慢速设备,无论打印机.调制解调器,甚至硬盘,与CPU相比都奇慢无比,坐下来干等I/O的完成是一件不甚明智事情. 异步(asynchronous) I/O在win32多线程程序设计中被称为 ...

  5. TortoiseSVN本地版本控制管理

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端.下载地址:https://tortoisesvn.net/downloads.html. 安装好TortoiseSV ...

  6. [转载]利用近场探头和频谱仪查找EMI辐射问题

    原文链接 http://www.pesmatrix.com/news/html/?412.html 电磁兼容性(Electromagnetic Compatibility,简称EMC)是指设备或系统在 ...

  7. SQLServer数据库的状态一直都是正在还原

    解决方案: 执行以下SQL语句 restore database [数据库名称] with recovery

  8. 云架构和openstack的思考

    原文链接: http://ifeve.com/cloud-architecture-openstack/ 作者:罗立树 最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得 ...

  9. Exp5 MSF基础应用 20164323段钊阳

    网络对抗技术 20164323 Exp5 MSF基础应用 靶机 ip:192.168.1.229 kali ip:192.168.1.216 exploit选取 主动攻击:ms17_010_psexe ...

  10. linux - 【LAMP环境配置安装注意安装步骤】 9

    (一)安装gcc glibc-devel glibc-headers ==>依赖项 kernel-headers ==>依赖项 libgomp gcc-c++ libstdc++-deve ...