| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 968 人关注过本帖
标题:prim算法求最小生成树
只看楼主 加入收藏
hdshdzh
Rank: 2
等 级:论坛游民
帖 子:77
专家分:11
注 册:2010-5-13
结帖率:92.31%
收藏
 问题点数:0 回复次数:3 
prim算法求最小生成树
#include<stdio.h>
#include<stdlib.h>
#define M 20
typedef char datatype;
typedef struct node{
int adjvex;
truct node *next;
}EdgeNode;
typedef struct vnode{
datatype vertex;
EdgeNode *FirstEdge;
}VertexNode;
typedef struct{
VertexNode adjlist[M];
int n,e;
}linkedGraph;
typedef struct edgedata{
int beg,en;
int length;
}edge;
voide prim(Mgraph t,edge tree[M-1])
{
edge x;
int d,min,j,k,s,v;
for(v=1;v<=g.n;v++)
{
tree[v-1].beg=0;
tree[v-1].en=v;
tree[v-1].length=g.edges[0][v];
}
for(k=0;k<=g.n-3;k++)————————————这里为什么是k<=g.n-3
{
min=tree[k].length;
s=k;
for(j=k+1;j<=g.n-2;j++)
if(tree[j].length<min)
{
min=tree[j].length;
s=j;
}
v=tree[s].en;
x=tree[s];tree[s]=tree[k];
tree[k]=x;
for(j=k+1;j<=g.n-2;j++)_______________这里为什么是k<=g.n-2
{
d=g.edgex[v][tree[j].en];
if(d<tree[j].length;
{
tree[j].length=d;
tree[j].beg=v;
}
}
}
printf("\n the minimum cost spanning tree is:\n");
for(j=0;j<=g.n-2;j++)
printf("\n%c---%c %d\n",g.vex[tree[j].beg],g.vexs[tree[j].en],ree[j].length);
pritf("\n the root of it is %c\n",g.vexs[0]);
}
void main()
{
Mgraph g;
edge tree[M-1];
char filename[20];
printf("please input filename of Graph:\n");
gets(filename);
great(&g,filename,0);
prim(g,tree);
}
搜索更多相关主题的帖子: 成树 prim 算法 小生 
2010-07-21 17:41
acman
Rank: 1
来 自:郑州
等 级:新手上路
帖 子:12
专家分:5
注 册:2010-8-21
收藏
得分:0 
没这么麻烦吧
2010-08-21 11:14
acman
Rank: 1
来 自:郑州
等 级:新手上路
帖 子:12
专家分:5
注 册:2010-8-21
收藏
得分:0 
每一次记录  位加入生成树的各个节点  和已生成树的 各点的  最短距离  就行了 每一次找到  最短的加进去  
2010-08-21 11:15
LegendofMine
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-21 21:39
快速回复:prim算法求最小生成树
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041463 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved