实验五 得到最小生成树
实验五
实验名称:
得到最小生成树
实验目的:
、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能b[k++][2]=a[i][j];
}
int t;
for(i=0;i<m-1;i++) //排序
for(j=i+1;j<m;j++)
if(b[i][2]>b[j][2])
for(k=0;k<3;k++)
{
t=b[i][k];
b[i][k]=b[j][k];
b[j][k]=t;
}
for(i=0;i<m;i++)
cout<<"("<<(char)(c1+b[i][0])<<","<<(char)(c1+b[i][1])<<","<<b[i][2]<<")";
cout<<endl;
int c[n-1][3],d[n];
for(k=0;k<3;k++)
c[0][k]=b[0][k];
d[0]=b[0][0];
d[1]=b[0][1];
k=1;
int k1=2,k2,k3,m1=0;
for(i=1;i<m;i++)
{
for(j=0;j<3;j++)
c[k][j]=b[i][j];
k++;
k3=k1;
for(k2=0;k2<k1;k2++)
if(b[i][0]==d[k2])
m1++;
if(!m1)
d[k1++]=b[i][0];
else
m1=0;
for(k2=0;k2<k1;k2++)
if(b[i][1]==d[k2])
m1++;
if(!m1)
实验五 得到最小生成树
d[k1++]=b[i][1];
else
m1=0;
if(k>=k1)
{
k--;
k1=k3;
}
if(k==n)break;
}
cout<<"用Kruskal算法得到的最小生成树为:\n{";
int count=0;
for(i=0;i<n-2;i++)
{
cout<<"("<<(char)(c1+c[i][0])<<","<<(char)(c1+c[i][1])<<"
离散数学-最小生成树 来自淘豆网m.daumloan.com转载请标明出处.