prime算法求最小生成图
来源:互联网 发布:000webhost绑定域名 编辑:程序博客网 时间:2024/06/05 20:13
1.代码
#include#include # define MAX_VEX 100//以数字代替顶点//创建邻接矩阵 int create(int cost[][MAX_VEX]){int i, j, v1, v2, w, vexnum, edgnum;printf("输入顶点数和边数: ");//确定数值有助于节省空间,方便代码书写scanf("%d, %d", &vexnum, &edgnum); //初始化,32767代表无穷 for(i=1; i<=vexnum; i++)for(j=1; j<=vexnum; j++)cost[i][j]=31767; printf("依次输入v1、v2及其权值w并以,隔开\n");for(i=1;i<=edgnum;i++){scanf(" %d, %d, %d",&v1,&v2,&w);//v1!=v2cost[v1][v2]=w;//建立无序图,加上以下一句cost[v2][v1]=w; }return vexnum;} //prim算法求最小生成树 void prim(int cost[][MAX_VEX], int vexnum){//从第k个顶点开始int i, j, k, bvex, min, locmin;//int lowcost[vexnum+1], closevext[vexnum+1];printf("prim算法最小生成树\n输入开始节点: ");scanf("%d", &bvex);//lowcost用于存储vexnum个权值,以便找出最小者 for(k=1;k<=vexnum;k++){lowcost[k]=cost[bvex][k];closevext[k]=bvex;//默认为起始节点 }closevext[bvex]=-1;//选入集合U for(i=1;i<=vexnum;i++){locmin=0, min=31767;//1,不在U内; 2,权值最小 for(j=1;j<=vexnum;j++)//定位V中距离U最近的顶点locmin if(closevext[j]!=-1&&lowcost[j]<min){min=lowcost[j];locmin=j;}if(locmin){printf("(%d,%d)%2d\n", closevext[locmin], locmin, min );closevext[locmin]=-1;//顶点locmin加入集合U //由于locmin的加入, 可能需要修改数组lowcost for(k=1;k<=vexnum;k++)if(closevext[k]!=-1&&cost[locmin][k]<lowcost[k]){lowcost[k]=cost[locmin][k];closevext[k]=locmin;//默认节点的修改,影响输出语句 }}}} int main(){int cost[MAX_VEX][MAX_VEX];int vexnum=create(cost);prim(cost, vexnum); return 0;}
2.结果
阅读全文
0 0
- prime算法求最小生成图
- prime算法求无向图的最小生成树
- prime算法求所有最小生成树
- Prime算法求最小生成树 (最小堆优化)
- 求图的最小生成树的prime算法和Kruskal算法
- hdu1102Constructing Roads(Prime 算法求最小生成树)
- hdu1301 Jungle Roads(Prime算法求最小生成树)
- Prime算法求最小生成树 (邻接矩阵)
- Prime算法求最小生成树 (邻接表)
- 最小生成树算法[prime]
- 最小生成树-prime算法
- 最小生成树 prime算法
- 最小生成树 prime算法
- 最小生成树Prime算法
- 最小生成树--Prime算法
- 最小生成树 Prime算法
- 最小生成树 prime 算法
- 最小生成树-prime算法
- HttpServletRequest cannot be resolved to a type
- [CTF]No.0005 [强网杯] broken
- python中的变量怎样开辟内存
- new MyBlog();
- Ubuntu root 密码忘记-恢复
- prime算法求最小生成图
- java基本类型与包装类型
- Babun,一个开箱即用的 Windows Shell
- POJ1007 字符串按逆序对排序
- C基础之指针
- General Approach for backtracking problem
- Spring-AOP @AspectJ进阶之绑定类注解对象
- Leetcode--Add Two Numbers
- 哪种编程语言最好?