Kruskal最小生成树算法
来源:互联网 发布:淘宝店怎么提升信誉 编辑:程序博客网 时间:2024/06/06 06:50
#include<iostream>using namespace std;int arcNum = 9;// 边数为9int ptNum = 6;struct edge{int start;int end;int weight;}a[9] = { {1,2,34},{1,3,46},{1,6,19}, {2,5,12},{4,5,38},{4,6,25},{3,4,17},{3,6,25},{5,6,26} };//该图引用的dijkstra里的图char ch[7] = { ' ','A','B','C','D','E','F' };//如a[9]为{1,2,34},根据字符数组可得a[1],a[2]之间的权值为34 即AB之间的权值为34void sort();int Find(int *parent, int f){while (parent[f] > 0)f = parent[f];return f;}void Kruskal(){int i, m, n;int minWeight = 0;int parent[10]; //用来判断边是否形成环路,如parent[2]=5意思是指: 2,5在同一棵生成树上memset(parent, 0, sizeof(int) * 10); for (i = 0; i < arcNum; i++){m = Find(parent, a[i].start);//下一个可存放的位置n = Find(parent, a[i].end);//下下一个if (m != n) //如果相等的话,则说明形成环路{parent[m] = n; cout << ch[a[i].start] << "和" << ch[a[i].end ]<< "加入, 权值:" << a[i].weight<<endl;minWeight += a[i].weight;}}//parent最终的值为{0, 6, 5, 4, 6, 6, 0, 0, 0, 0}//m,n值的变化:(2,5)(3,4)(1,6) (3,6)->(4,6) (5,6)cout << "最小权值为: " << minWeight << endl;}int main(void){sort();//对权值先进行排序Kruskal();system("pause");return 0;}void sort(){for (int i = 0; i < arcNum-1; i++){int min = i;for (int j = i; j < arcNum; j++)if (a[min].weight > a[j].weight)min=j;if (min != i){int t;t = a[min].start;a[min].start = a[i].start;a[i].start = t;t = a[min].end;a[min].end = a[i].end;a[i].end = t;t = a[min].weight;a[min].weight = a[i].weight;a[i].weight = t;}}}
0 0
- Kruskal 最小生成树算法
- 最小生成树Kruskal算法
- 最小生成树----Kruskal算法
- 最小生成树kruskal算法
- 最小生成树 - Kruskal算法
- 最小生成树---Kruskal算法
- 最小生成树(kruskal算法)
- 最小生成树,kruskal算法
- 最小生成树--kruskal算法
- 最小生成树---kruskal算法
- 最小生成树--Kruskal算法
- 最小生成树 : Kruskal 算法
- 最小生成树-Kruskal算法
- 最小生成树 Kruskal算法
- 最小生成树kruskal算法
- 最小生成树kruskal算法
- 【Kruskal】算法 最小生成树
- 最小生成树kruskal算法
- 实现网站(网页)跳转且可隐藏跳转后网址的代码
- Android开发中各分辨率图片的参考尺寸
- bootcss 通过css全局样式将html设置为html5文档样式
- AFNetworking网络请求-数据请求(POST/GET)
- joup完美抓取非登录网页并引用其样式文件
- Kruskal最小生成树算法
- hdu1680 Cheesy Chess--BFS & 三维标记数组的探讨(待改进)
- CodeForces 15D Map (RMQ)
- Kefa and Company
- fzu 2144 Shooting Game 区间覆盖贪心
- pat 1115 Counting Nodes in a BST (30)
- Android studio乱码O
- dtd 文件解析
- solr学习笔记-导入mysql数据