早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列算法说明和算法,将应填入(n)的字句写在对应的栏内。[说明] 下列最短路径算法的具体流程如

题目

阅读下列算法说明和算法,将应填入(n)的字句写在对应的栏内。

[说明]

下列最短路径算法的具体流程如下:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择不使森林中产生回路的边加入到森林中去,直至该森林变成一棵树为止,这棵树便是连通网的最小生成树。该算法的基本思想是:为使生成树上总的权值之和达到最小,则应使每一条边上的权值尽可能地小,自然应从权值最小的边选起,直至选出 n-1条互不构成回路的权值最小边为止。

[算法]

/*对图定义一种新的表示方法,以一维数组存放图中所有边,并在构建图的存储结构时将它构造为一个“有序表”。以顺序表MSTree返回生成树上各条边。*/

typedef struct{

VertexType vex1;

VertexType vex2;

VRType weight;

} EdgeType;

typedef ElemType EdgeType;

typedef struct { //有向网的定义

VertexType vexs [MAX_VERTEX_N U M ]; //顶点信息

EdgeType edge[ MAX_EDGE_NUM]; //边的信息

int vexnum, arcnum; //图中顶点的数目和边的数目

I ELGraph;

void MiniSpanTree_Kruskal( ELGraph G,SqList& MSTree) {

//G, edge 中依权值从小到大存放有向网中各边

//生成树的边存放在顺序表MSTree中

MFSetF;

InitSet( F, G. vexnum ); //将森林F初始化为N棵树的集合

InitList (MSTree, G. vexnum); //初始化生成树为空树

i=0;k=1;

while(k<(1)){

e = G. edge[i]; //取第i条权值最小的边

/*函数fix_mfset返回边的顶点所在树的树的根代号,如果边的两个顶点所在树的树根相同,则说明它们已落在同一棵树上。 */

ri = fix_mfset(F, LocateVex(e. vex1) );

r2=(2); //返回两个顶点所在树的树根

if(r1 (3) r2) { //选定生成树上第k条边

if(Listlnsert(MSTree,k,e){(4); //插入生成树

mix_mfset( E, r1,r2); //将两棵树归并为一棵树

}

(5); //继续考察下一条权值最小边

}

DestroySet (F); }

}

参考答案
正确答案:(1)G. vexnum(2)fix_mfset(F LoeateVex(e. vex2)) (3)!=(4)k++。(5)i++
(1)G. vexnum(2)fix_mfset(F, LoeateVex(e. vex2)) (3)!=(4)k++。(5)i++ 解析:本题考查的是克鲁斯卡尔(Kruskal)算法。理解该算法的关键在于:由于生成树上不允许有问路,因此并非每一条居当前权值最小的边都可选。例如,如图2所示的连通网G5,在依次选中了(e, f),(b, c),(e, d)和(f, s)的4条边之后,权值最小边为(s, d),由于g和d已经连通,若加上(s, d)这条边将使生成树上产生回路,显然这条边不可取。同理,边(f, d)也不可取,之后则依次取(a, s)和(a, b)两条边加入到生成树。
那么在算法中如何判别当前权值最小边的两个顶点之间是否已经连通?从生成树的构造过程可见,初始态为n个顶点分属n棵树,互不连通,每加入一条边,就将两棵树合并为一棵树,在同一棵树上的两个顶点之间自然相连通。由此判别当前权值最小边是否可取只要判别它的两个顶点是否在同一棵树上即可。
看了阅读下列算法说明和算法,将应填...的网友还看了以下:

继避雷器选择我的电容补偿柜总的补偿电容有1100千乏,计算出的无工功率电流有1600多A,电容电压 其他 2020-04-06 …

离子方程式只能发生在溶液之间吗?比如金属与盐的置换反应可以写成离子方程式吗?某些沉淀和酸(碳酸钙和 化学 2020-05-13 …

尼罗河经常断流,怎么能说是最长的河呢...应该是亚马逊!求河流长度定义,断流也算么?尼罗河经常断流 语文 2020-05-17 …

欧姆定律电压/电阻=电流举例计算一下;比如我的手机电池是3.7V手机电阻是多少欧姆一般,举个例子计 物理 2020-07-01 …

设{Fn}是斐波那契数列,则F1=F2=1,Fn=Fn-1+Fn-2,)如图是输出斐波那契数列的一 其他 2020-07-23 …

关于安装路灯时电流的计算方法共20只路灯,间距50M,150W节能灯,如果一路供电,电流应该是多少的 物理 2020-11-25 …

小型交流断路器在直流中的应用低压断路器应用于24V直流电路中的时候,断路器的额定电流是否直接根据直流 物理 2020-12-07 …

请教电流计算及相应元件选型问题三相星形连接的加热电路中,知道功率为4180W,电压400V(美国), 物理 2020-12-25 …

已知电热丝电阻6.2欧,三角形接法,功率因数为1,根据欧姆定律:I=U/R,那么电流应该是I=380 物理 2020-12-25 …

多个加热圈并联电流计算每个加热圈功率4.7KW电压220V,一共有18个加热圈,请问总负载是84KW 物理 2021-01-14 …