#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. 安卓开发解决android.os.NetworkOnMainThreadException异常方法(主线程不能直接调用webservice)

    安卓开发解决android.os.NetworkOnMainThreadException异常方法 2013-01-07 14:01:04|  分类: 技术 |  标签:安卓  技术  java  | ...

  2. DB2存储过程通过游标实现批量数据处理

    CREATE procedure proc_change()LANGUAGE SQLBEGIN DECLARE l_id INTEGER; DECLARE l_detail_id INTEGER; D ...

  3. curl:get,post 以及SoapClien访问webservice数据

    一.curl get模式 public function close_order(){ $url="http://192.168.2.50:7777/U8API.asmx?op=Insert ...

  4. Thrift编译错误('::malloc' has not been declared)

    问题版本:0.9.0 make[4]: Entering directory `/tmp/X/thrift-0.9.0/lib/cpp' /bin/sh ../../libtool  --tag=CX ...

  5. opengl教程推荐

    非常不错的教程! OpenGL教程

  6. SQL Server触发器的基本使用

    sqlserver_SQL触发器的使用及语法(转自:百度文库) 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程 ...

  7. github的使用经历

    首先我打开百度搜索markdown,点击这个在线编辑器,开始编写,如下图: 预览效果如下: 然后打开github的网页登录后,点击下图这个标志: 然后给给要上传的一个命名: 然后选择README 确认 ...

  8. 浏览器缓存和Service Worker

    浏览器缓存和Service Worker @billshooting 2018-05-06 字数 6175 Follow me on Github 标签: BOM 1. 传统的HTTP浏览器缓存策略 ...

  9. nginx 内置参数

    $args #这个变量等于请求行中的参数.$content_length #请求头中的Content-length字段.$content_type #请求头中的Content-Type字段.$docu ...

  10. Jquery EasyUI 各组件属性、事件详解

    CSS类定义: div easyui-window                               window窗口样式 属性如下: 1)       modal:是否生成模态窗口.tru ...