阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】应用Prim算法求解连通网络的
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。
【说明】 应用Prim算法求解连通网络的最小生成树问题。请阅读程序后填空。
const int MaxInt=INT MAX; //INT MAX的值在<limits.h>中
const int n=6; //图的顶点数,应由用户定义
typedef int AdjMatrix[n][n]; //用二维数组作为邻接矩阵表示
typedef struct{ //生成树的边结点
int fromVex,to Vex; //边的起点与终点
int weight; //边上的权值
}TreeEdSenode;
typedef TreeEdgeNode MST[n-1]; //最小生成树定义
void PrimMST (AdjMatrix G,MST T,int rt){
//从顶点rt出发构造图G的最小生成树T,rt成为树的根结点
TreeEdgeNode e; int i,k=0,min,minpos,v;
for(i=0;i<n;i++) //初始化最小生成树T
if(i!=rt){
T[k].fromVex=rt;
(1);
T[k++].weight=G[rt][i];
}
for(k=0;k<n-1;k++){ //依次求MST的候选边
(2);
for(i=k;i<n-1;i++) 八遍历当前候选边集合
if(T[i].weight<min) //选具有最小权值的候选边
{min=T[i].weight;(3);}
if(min==MaxInt) //图不连通,出错处理
{cerr<<“Graph is disconnected!”<<endl; exit(1);}
e=T[minpos];T[minpos]=T[k];(4);
v=T[k].to Vex;
for(i=k+1;i<n-1;i++) //修改候选边集合
if(G[v][T[i].to Vex]<T[i].weight){
T[i].weight=G[v][T[i].toVex];
(5);
}
}
}
(1)T[k].toVex=I (2)min=MaxInt (3)minpos=i (4)T[k]=e; (5)T[i].fromVex=v 解析:(1)T[k].toVex=i
树n边的入度点。
(2)min=MaxInt
最小值变量初始化。
(3)minpos=i
最小值结点的位置。
(4)T[k]=e;
T[minpos]与T[k]交换。
(5)T[i].fromVex=v
候选边的出度点。
已知是i,m,n正整数,且1 (1+n)^m第一小问的A(i m)和A(i n)是排列公式,上面i 数学 2020-05-16 …
关于数学排列数公式的问题,A-n-m(下标n,上标m)=n!除以乘以(n-m)!为什么?详细的推导 数学 2020-05-16 …
关于数学组合数公式的问题:A-n-m(下标n,上标m)=n!除以[m!乘以(n-m)!]求推导过程 数学 2020-05-16 …
关于数学排列的问题.请问这个公式是怎么来的?A-n-m(下标n,上标m)=n!除以乘以(n-m)! 数学 2020-05-16 …
求纠错!输入整数 m 和正整数 n ,按下列公式计算 s输入整数 m 和正整数 n ,按下列公式计 其他 2020-05-17 …
谁能帮我看下这个程序问题出在哪?function[variancebsbkbnsigma]=tra 其他 2020-06-21 …
matlab图像处理,提取图片的高频分量!我是这样写的:function gOK=laplace( 其他 2020-06-27 …
ΣΣPij是怎么个加法?第一个Σ是i=1~n,第二个Σ是j=1~m.是说把n•m个数都加上?还是以 数学 2020-07-21 …
排列证明:P(m,n)=P(k,n)P(m-k,n-k)P(m,n)=n!/(n-m)!P(k,n) 数学 2020-12-05 …
用matlab解一下这个微分方程!急.di/dt=(480*m+15*n+20*k*i)*(1+a- 数学 2020-12-12 …