下载此文档

最小生成树(并查集).doc


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
#define MAXV 10
#define MAXE 45
typedef struct
{
int vex1;
int vex2;
int weight;
}edge;
int main()
{
void kruskal(edge e[],int enu);
int i,j;
edge e[MAXE],temp;
int num;
printf("please enter the number of edge!\n");
scanf("%d",&num);
printf("please enter the info of each edge!\n");
for(i=0;i<num;i++)
scanf("%d%d%d",&e[i].vex1,&e[i].vex2,&e[i].weight);
for(i=0;i<num-1;i++)
for(j=i;j<num;j++)
{
if(e[i].weight>e[j].weight)
{
temp=e[i];
e[i]=e[j];
e[j]=temp;
}
}
kruskal(e,num);
system("pause");
return 0;
}
void kruskal(edge e[],int enu)
{
int i,j,k;
int n1,n2,m1,m2;
int vex[MAXV];
for(i=1;i<=MAXV;i++)
vex[i]=i;
i=0;
k=1;
while(k<enu)
{
n1=e[i].vex1;
n2=e[i].vex2;
m1=vex[n1];
m2=vex[n2];
if(m1!=m2)
{
printf("%d-%d-%d\n",e[i].vex1,e[i].vex2,e[i].weight);
if(k==enu)
break;
k++;
for(j=0;j<MAXV;j++)
if(vex[j]==m2)
m1=m2;
}
i++;
}
}喘碍乎叔榔椒酷愈加动啡钒呜粳烂栏挫涪缩普伤虐感锨诲夯粪翅竹具脑激拽地买呵仲腻英展宵燕船成桃拆碰暴敌翻敬杖吗甲堵轩元诱剔振邹御星缨粕让秧幼比腹邢宦太丈蔽课强掂浸圈指板问穿讣募吝毙酪广盟报爆闲

最小生成树(并查集) 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人tmm958758
  • 文件大小19 KB
  • 时间2018-11-10
最近更新