最小生成树(Prim算法)
来源:互联网 发布:淘宝差评对卖家重要吗 编辑:程序博客网 时间:2024/06/11 10:09
要求:输入一个图,求出最小生成树。
输出最小生成树的边。
Prim算法
代码:
#include <stdio.h>typedef struct graph{int vexnum,arcnum;int edge[100][100];}Graph;struct edge{int adjvex;int lowcost;}closedge[105];void Prim(Graph G,int start){int i,j,k;int min;for(i=1;i<=G.arcnum;i++){if(i!=start){closedge[i].adjvex=start;closedge[i].lowcost=G.edge[start][i];}}closedge[start].lowcost=0;for(i=2;i<=G.vexnum;i++){min=100000;for(j=1;j<=G.vexnum;j++){if(closedge[j].lowcost && closedge[j].lowcost<min){k=j;min=closedge[j].lowcost;}}printf("%d %d\n",closedge[k].adjvex,k);closedge[k].lowcost=0;for(j=1;j<=G.arcnum;j++){if(G.edge[k][j]<closedge[j].lowcost){closedge[j].lowcost=G.edge[k][j];closedge[j].adjvex=k;}}}}int main(){int i,j;Graph G;int n,m,a,b,c;printf("请输入结点个数和边的条数:\n");scanf("%d %d",&G.vexnum,&G.arcnum);printf("请输入边:\n");for(i=1;i<=G.arcnum;i++)for(j=1;j<=G.arcnum;j++)G.edge[i][j]=1000000;for(i=1;i<=G.arcnum;i++){scanf("%d %d %d",&a,&b,&c);G.edge[a][b]=c;G.edge[b][a]=c;}//输入一个无向图printf("最小生成树:\n");Prim(G,1);return 0;}
1 0
- 最小生成树(prim算法)
- 最小生成树算法(prim&kruskal)
- 最小生成树(prim算法)--poj1258
- 最小生成树(Prim算法)
- HDU1863---最小生成树(prim算法)
- 最小生成树(Prim算法)
- 最小生成树(prim算法)
- 最小生成树(prim算法模板)
- 最小生成树prim算法(贪心)
- 数据结构--最小生成树(Prim算法)
- Prim算法(最小生成树)
- 数据结构:最小生成树(Prim算法)
- 最小生成树(hdu1233)Prim算法
- 最小生成树(Prim算法)
- 最小生成树(Prim算法)
- 最小生成树prim(普里姆)算法
- 最小生成树(Prim算法)
- 最小生成树Prim算法(邻接矩阵)
- Android Camera数据流分析全程记录(非overlay方式)
- 如何使用github?github简单使用教程(转自http://blog.sina.com.cn/dashanliu)
- 南大软院大神养成计划--jquery
- Android Camera数据流分析全程记录(overlay方式二)
- Android之screenOrientation属性
- 最小生成树(Prim算法)
- Android Camera CameraHal.cpp 初始化分析
- uva 12186——Another Crisis
- 我的Xelatex 中文报告模板
- opencv3.0配置文件opencv300.props
- 递归技术
- JAVA面向对象(一)
- 关于AssetBundle
- hive/hbase区别