#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. Error generating final archive: Unable to get debug signature key

    在调试程序时,发生下面的错误: Error generating final archive: Unable to get debug signature key 解决办法: 删除下面的文件: C:\ ...

  2. 好久没做.Net开发了,今天配置IIS和.Net Framework 4.0遇到点问题

    装了64位的Win7后,装了VS再装IIS,结果IIS里面有.NET4.0,但是程序始终是跑不起来,最后觉得可能是因为4.0没有注册到IIS,因为之前在win2003中有遇到类似的情况.最终成功解决, ...

  3. Redis安装系统服务1073错误

    报错:D:\ProgramFiles\redis>redis-server.exe --service-install redis.windows.conf --loglevel verbose ...

  4. web.xml配置中的log4jRefreshInterval讲解

    采用spring框架的项目如何使用log4j在spring中使用log4j,有些方便的地方, 1.动态的改变记录级别和策略,即修改log4j.properties,不需要重启web应用,这需要在web ...

  5. Vivado&ISE&Quartus II调用Modelsim级联仿真

    博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...

  6. underscore概况

    看的是1.3.3,这个版本的中文源码解释比较多. 函数的中文注释:http://www.css88.com/doc/underscore1.5.2/#difference 源码的中文注释:http:/ ...

  7. Centos 下安装tomcat多实例

    基础环境及JDK就不多说了,下面的目录结构以如下为准: 根目录-apps根目录-apps--tomcat根目录-apps--ins1根目录-apps--ins2 =================== ...

  8. HTML解析器软件

    HTML解析器软件 HTML文档解析器 HTMLParser HTML Parser 是一个对HTML进行分析的快速实时的解析器,最新的发行版本是1.6,另外2.0的开发版本已经两年没有进展了.示例代 ...

  9. UWP开发砸手机系列(二)—— “讲述人”识别自定义控件Command

    上一篇我们提到如何让“讲述人”读出自定义的CanReadGrid,但“讲述人”仍然无法识别CanReadGrid上绑定的Command.XAML代码如下: <StackPanel> < ...

  10. 云架构和openstack的思考

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