Word文档
离散数学实验报告
姓名:
学号:
班级:实验地点:实验时间:
实验目的和要求
运用最小生成树思想和求最小生成树程序解决实际问题。实际问题描述如下:八口海上油井相互间距离如下表,其中1号井离海岸最近,为5km;
else
cout<<setw(6)<<[i][j];cout<<endl;
}
}
voidprim(MGraphg,intv){〃从顶点VO出发,按Prim算法构造G的最小生成树
//输出最小生成树的每条边及其权值
floatVlength[MAXV];
inti,j,k;
intcloest[MAXV];
floatmin;
floatsum=;
for(i=0;i<;i++){
Vlength[i]=[v][i];
cloest[i]=v;
}
Word文档
Word文档
for(i=1;i<;i++){
min=INF;//min为其中最大的一条边二MAX
for(j=0;j<;j++){〃找n-1条边if(Vlength[j]!=0&&Vlength[j]<min){
min=Vlength[j];
k=j;
}
}
cout<<"连接油井
<"<<cloest[k]+1<<","<<k+1<<">"<<"长度为:"<<min<<endl;sum+=min;
Vlength[k]=0;
Vlength[cloest[k]]=0;
for(j=0;j<;j++){//选择当前代价最小的边if([k][j]!=0&&[k][j]<Vlength[j]){Vlength[j]=[k][j];
cloest[j]=k;
}
cout<<"管道总长度为:"<<sum<<endl;
}
intmain()
{
inti,j,u=3;
Word文档
Word文档
MGraphg;
floatA[MAXV][10];
=8;
for(i=0;i<;i++)
for(j=0;j<;j++)
A[i][j]=INF;
A[0][1]=;A[0][2]=;A[0][3]=;
A[0][4]=;A[0][5]=;A[0][6]=;
A[0][7]=;A[1][2]=;A[1][3]=;
A[1][4]=;A[1][5]=;A[1][6]=;
A[1][7]=;A[2][3]=;A[2][4]=;
A[2][5]=;A[2][6]=;A[2][7]=;
A[3][4]=;A[3][5]=;A[3][6]=;
A[3][7]=;A[4][5]=;A[4][6]=;
A[4][7]=;A[5][6]=;A[5][7]=;
A[6][7]=;
for(i=0;i<;i++)
for(j=0;j<;j++)
A[j][i]=
离散数学实验报告 来自淘豆网m.daumloan.com转载请标明出处.