package com.jkxy.more;
public class MTreeOPho2 {
static int k,i,j,min,sum,count=0,n=6,m=9;
static int e[][]={{0,0,0,0,0,0,0},
{0,0,1,2,999,999,999},
{0,1,0,6,11,999,999},
{0,2,6,0,9,13,999},
{0,999,11,9,0,7,3},
{0,999,999,13,7,0,4},
{0,999,999,999,3,4,0}};
static int dis[]={0,0,1,2,999,999,999};
static int[] book={0,1,0,0,0,0,0};
public static void main(String[] args) {
count++;
while(count<n){
min=999;
for(i=1;i<=n;i++){
if(book[i]==0&&dis[i]<min){
min=dis[i];j=i;
}
}
book[j]=1;count++;sum=sum+dis[j];
for(k=1;k<=n;k++){
if(book[k]==0&&dis[k]>e[j][k])
dis[k]=e[j][k];
}
}
System.out.print(sum);
}
}
/*生成树法。定义图对应的二维数组,定义点离树的距离的dis[],book[]用以标记是否已经加入树。
先找出距离树最近的点j,j为中间点,扫描所有边,dis[k]>e[j][k]则e[j][k]赋值给dis[k]*/
蓝桥-树-图最小生成树2
最新推荐文章于 2020-07-28 22:52:10 发布