阅读下列函数说明和C代码,将应填入(n)处的字句写上。[说明]若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其问拓扑结构如图5-1所示,边表示城市间通信线路,边上标示的是建立该线路的代价。[图5-1]无向图用邻接矩阵存储,元素的值为对应的权值。考虑到邻接矩阵是对称的且对角线上元素均为0,故压缩存储,只存储上三角元素(不包括对角线)。现用Prim算法生成网络的最小生成树。由网络G=(V,E)构造最小生成树T

题目

阅读下列函数说明和C代码,将应填入(n)处的字句写上。

[说明]

若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其问拓扑结构如图5-1所示,边表示城市间通信线路,边上标示的是建立该线路的代价。

[图5-1]

无向图用邻接矩阵存储,元素的值为对应的权值。考虑到邻接矩阵是对称的且对角线上元素均为0,故压缩存储,只存储上三角元素(不包括对角线)。

现用Prim算法生成网络的最小生成树。由网络G=(V,E)构造最小生成树T=(U,TE)的Prim算法的基本思想是:首先从集合V中任取一顶点放入集合U中,然后把所有一个顶点在集合U里、另一个顶点在集合V-U里的边中,找出权值最小的边(u,v),将边加入TE,并将顶点v加入集合U,重复上述操作直到U=V为止。

函数中使用的预定义符号如下:

define MAX 32768 /*无穷大权,表示顶点间不连通*/

define MAXVEX 30 /*图中顶点数目的最大值*/

typedef struct{

int startVex,stopVex; /*边的起点和终点*/

float weight; /*边的权*/

}Edge;

typedef struct{

char vexs[MAXVEX]; /*顶点信息*/

float arcs[MAXVEX*(MAXVEX-1)/2]; /*邻接矩阵信息,压缩存储*/

int n; /*图的顶点个数*/

}Graph;

[函数]

void PrimMST(Graph*pGraph, Edge mst[])

{

int i,j,k,min,vx,vy;

float weight,minWeight;

Edge edge;

for(i=0; i<pGraph->n-1;i++){

mst[i].StartVex=0;

mst[i].StopVex=i+1;

mst[i].weight=pGraph->arcs[i];

}

for(i=0;i<(1);i++){/*共n-1条边*/

minWeight=(float)MAX;

min=i;

/*从所有边(vx,vy)中选出最短的边*/

for(j=i; j<pGraph->n-1; j++){

if(mst[j].weight<minWeight){

minWeight=(2);

min=j;

}

}

/*mst[minl是最短的边(vx,vy),将mst[min]加入最小生成树*/

edge=mst[min];

mst[min]=mst[i];

mst[i]=edge;

vx=(3);/*vx为刚加入最小生成树的顶点下标*/

/*调整mst[i+1]到mst[n-1]*/

for(j=i+1;j<pGraph->n-1;j++){

vy=mst[j].StopVex;

if( (4) ){/*计算(vx,vy)对应的边在压缩矩阵中的下标*/

k=pGraph->n*vy-vy*(vy+1)/2+vx-vy-1;

}else{

k=pGraph->n*vx-vx*(vx+1)/2+vy-vx-1;

}

weight(5);

if(weight<mst[j].weight){

mst[j].weight=weight;

mst[j].StartVex=vx;

}

}

}

}

(1)


相似考题
更多“ 阅读下列函数说明和C代码,将应填入(n)处的字句写上。[说明]若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其”相关问题
  • 第1题:

    试题三(共 20 分)

    阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

    【说明】

    随着个人电脑和因特网的普及,越来越多的语音和数据通信以数字形式进行,使用网络多媒体技术可以在 IP 网络上实现多媒体通信、媒体点播等服务。因特网电话技术不仅限于语音 Vo IP(Voice over IP) ,它还集成了语音、视频和数据服务。

    【问题 1】 (9 分)

    请解释以下完成一个因特网电话服务所涉及的网络协议和应用标准。

    H.323,TCP,RTP,RTCP,UDP,RSVP,RTSP,IP,IP Multicast

    【问题 2】 (9 分)

    下图是一个因特网电话服务系统的网络协议及应用结构图,请将问题 1中列出的协议和应用标准填入图中正确的位置。

    【问题 3】 (2 分)

    如果要在H.323因特网电话终端和公共电话交换网络的H.324多媒体通信终端之间进行通信,需要如何实现?


    正确答案:

  • 第2题:

    某省6个城市(A~F)之间的网络通信线路(每条通信线路旁标注了其长度公里数)如图2-13所示。如果要将部分千兆通信线路改造成万兆通信线路,以提升各个城市网络之间的通信容量,则至少要改造总计(66)公里的通信线路,这种总公里数最少的改造方案共有(67)个。

    A.1000

    B.1300

    C.1600

    D.2000


    正确答案:B
    解析:从图论上看,本题要求得到上图的最小支撑树(即选取部分边,使其保持连通,又使其总长度最小)。如下算法可以逐步实现这个要求。
      任取一点,例如A,将其纳入已完成部分。点A与其他各点中的最小距离为AE=200,从而将边AE及点E纳入已完成部分。
      点A、E与其他各点B、C、D、F这两个集合之间的最短距离为AB=AF=300,从而可以将边AB与点B(或边AF与点F)纳入已完成部分。
      点A、B、E与点C、D、F两个集合的最短距离为AF=BF=300,从而可以将边AF(或边BF)与点F纳入已完成部分。
      点A、B、E、F与点C、D两个集合之间的最段距离为FD=200,从而将边FD与点D纳入已完成部分。
      点A、B、E、F、D与点C两个集合之间的最短距离为CD=300,从而将边CD与点C纳入已完成部分。
    此时,所有6个点都已经接通,其边为AE、AB、AF、FD、CD,总长度为200×2+300×3=1300(如图2-15所示)。

      连通这6个点的边至少需要5条,最短总长等于2个200及3个300。图2-13中共有4条边长300,其中,CD边在最短总长度方案中不可缺少,而AB、BF、AF中可以任选2条。因此,共有3个最短总长度的方案。另两种改造方案如图2-16和图2-17所示。

  • 第3题:

    阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。
    【说明】
    某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种
    类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。






    答案:
    解析:

  • 第4题:

    试题三(共 15 分)

    阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。


    正确答案:

  • 第5题:

    阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。

    【C++代码】 #include using namespace std; class invoice{ public: (1){ cout<<"This is the content of the invoice!"<

    答案:
    解析:
    (1) virtual void printInvoice() (2) ticket->printInvoice() (3) Decorator::printInvoice() (4) Decorator::printInvoice() (5) &a
    【解析】

    试题分析
    1.Invoice类下,义虛函数,按类图,函数名是printInvoice
    2.前面定义对象名是ticket,那么在ticket不为空的时候调用函数printInvoice
    3.这部分填写发票的抬头,看类图应该实现函数printInvoice ,Decorator装饰模式使用该方法
    4.这部分是发票的脚注,看类图应该实现函数printlnvoice,Decorator装饰模式使用该方法
    5.FootDecorator a(NULL) ;脚步的装饰参数是a,调用a参数,