求最小生成树的prim算法
来源:互联网 发布:有windows.old怎么还原 编辑:程序博客网 时间:2024/05/23 18:34
#include <cstdio>#include <cstring>#include <iostream>using namespace std;#define MAXN 100#define INFINITY 10000000int n,m;struct edge{int to;int weight;int next;}edges[MAXN];int head[MAXN];int book[MAXN];int cnt=0;void Init(){for(int i=1;i<=m;i++)edges[i].next=0;for(int i=1;i<=n;i++)head[i]=0;}void Add(int x,int y,int w){cnt++;edges[cnt].to=y;edges[cnt].weight=w;edges[cnt].next=head[x];head[x]=cnt;}void Prim(){int ind,minDis;int count,sum=0;//从顶点1开始memset(book,0,sizeof(book));book[1]=1;//已经加入生成树的点做个标记count=1;while(count<n){minDis=INFINITY;//查找一个点 已在生成树中的点到该点的距离最小for(int i=1;i<=n;i++){if(book[i]){ for(int j=head[i];j;j=edges[j].next){ if(!book[edges[j].to]&&minDis>edges[j].weight){ ind=edges[j].to; minDis=edges[j].weight; } }}}if(minDis==INFINITY){printf("The minimum spanning tree is not existed!\n");return;}book[ind]=1;sum+=minDis;count++;}printf("The weights of the minimum spanning tree is %d\n",sum);}int main(){int x,y,w;cin>>n>>m;Init();for(int i=1;i<=m;i++){cin>>x>>y>>w;Add(x,y,w);Add(y,x,w);}Prim();return 0;}
1 0
- 求最小生成树的Prim算法
- 求最小生成树的prim算法
- 求最小生成树的Prim算法
- prim算法求最小生成树程序
- prim算法,求最小生成树。
- prim经典算法求最小生成树
- Prim算法求最小生成树
- Prim算法求最小生成树
- prim算法求最小生成树
- POJ2421 prim算法求最小生成树
- Prim 算法求最小生成树
- 求最小生成树,普里姆(Prim)算法
- 求最小生成树,普里姆(Prim)算法
- Prim算法求最小生成树
- 求最小生成树,普里姆(Prim)算法
- Prim(普里姆)算法求最小生成树
- Prim算法求最小生成树
- Prim算法求最小生成树
- Java多线程学习笔记(一)
- 番外 03:Java日志框架引入 log4j2(Log For Java version2.x)
- shell学习第十天----sed查找与替换
- 新浪分享获取签名
- Couchbase第一印象(架构特性)
- 求最小生成树的prim算法
- 初级音乐播放器——播放存储卡上的歌曲,能够播放和暂停(SD卡没有MP3文件会报错)
- Eclipse常用的快捷方式汇总
- 高级硬件工程师设计电路,多想了哪几个问题?--硬件十万个为什么
- MFC 改变Dialog的大小初始化
- HTML5学习随笔01
- ANSI,ASCII,Unicode的区别与联系
- 09 Spring 事务管理(@Transactional)基本使用
- Spring与mybatis整合---Mybatis学习笔记(十一)