首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】函数int Toplogical(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE一网
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】函数int Toplogical(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE一网
admin
2010-01-15
69
问题
阅读下列函数说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】函数int Toplogical(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE一网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:
typedef struct Gnode{ /*邻接表的表结点类型*/
int adivex; /*邻接顶点编号*/
int weight; /*弧上的权值*/
bstmct Gonde*nextare; /*指示下一个弧的结点*/
}Gnode;
typedef struct Adjlist{ /*邻接表的头结点类型*/
char vdata; /*顶点的数据信息*/
struct Gnode*Firstadj; /*指向邻接表的第1个表结点*/
}Adjlist;
typedef struct LinkedWDigraph{ /*图的类型*/
int n, e; /*图中顶点个数和边数*/
struct Adjlist head; /*指向图中第1个顶点的邻接表的头结点*/
}LinkedWDigraph;
【函数】
int Toplogical(LinkedWDigraph G)
{ Gnode *p;
int j,w,top=0;
int *Stack,*ve,*indegree;
ve=(int *)mallloc(G.n+1)* sizeof(int)};
indegree=(int *)malloc((G.n+1)*sizeof(int));/*存储网中个顶点的入度*/
Stack=(int *)malloc((G.n+1)*sizeof(int)); /*存储入度为0的顶点的编号*/
if(!ve‖!indegree‖!Stack)
exit(0);
for(j=1;j<=G.n;j++){
ve[j]=0; indegree[j]=0;
}/*for*/
for(j=1;j<=G.n;j++){ /*求网中各顶点的入度*/
p=G.head[j].Firstadj;
while(p){
(1); p=p->nextarc;
}/*while*/
}/*for*/
for(i=1;j<=G.n;j++) /求网中入度为0的顶点并保存其编号*/
if(!indegree[j]) Stack[++top]=j;
while(top>0){
w=(2);
printf("%c", G.head[w].vdata);
p=G.head[w].Firstadj;
while(p){
(3);
if(!indegree[p->adjvex])
Stack[++top]=p->adjvex;
if( (4) )
ve[p->adjvex]=ve[w]+p->weight;
p=p->nextarc;
}/*while*/
return (5);
}/*Toplogical*/
选项
答案
(1)indegree[p->adjvex]++及其等价形式 (2)Stack[top-]及其等价形式 (3)indegree[p->adjvex]--及其等价形式 (4)ve[w]+p->weight>ve[p->adjvex]及其等价形式 (5)ve[w]及其等价形式
解析
(1)indegree[p->adjvex]++及其等价形式
此填空在for(j=1;j<=G.n;j++)中,求网中各顶点的入度。遍历邻接表G.head[j].Firstadj,将每个结点p->adjvex的入度indegree[p->adjvex]加1。邻接表是j的出度结点表。
(2)Stack[top-]及其等价形式
栈Stack中存放的是入度为0的结点号,此while循环中,w取栈顶值开始搜索打印这些结点。
(3)indegree[p->adjvex]--及其等价形式
由于p=G.head[w].Firstadj;因此while循环是遍历这个邻接链表,将每个结点的入度减1。将入度为0的结点号入栈Stack中。
(4)ve[w]+p->weight>ve[p->adjvex]及其等价形式
若ve[w]+p->weight大于ve[p->adjvex],则ve[w]+p->weight是最长路径,用ve[w]+p->weight取代ve[p->adjvex]。
(5)ve[w]及其等价形式
最终返回的是w结点的ve[w]值作为整个AOE—网的最长路径值。
转载请注明原文地址:https://kaotiyun.com/show/c0DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
零件关系P(零件名,条形码,供应商,产地,价格)中的(12)属性可以作为该关系的主键。查询产于西安且名称为“P2”的零件,结果以零件名、供应商及零件价格分列表示,对应的SQL语句为:SELECT零件名,供应商,价格FROMPWHE
零件关系P(零件名,条形码,供应商,产地,价格)中的(12)属性可以作为该关系的主键。查询产于西安且名称为“P2”的零件,结果以零件名、供应商及零件价格分列表示,对应的SQL语句为:SELECT零件名,供应商,价格FROMPWHE
以下不属于系统测试范畴的是_______。
以下用例图中,A1和A2为(47)。A1和A2的关系为(48)。(47)
下图中,类Product和ConcreteProduct的关系是(45),类ConcreteCreator和ConcreteProduct的关系是(46)。(46)
模块A、B和C都包含相同的5个语句,这些语句之间没有联系,为了避免重复,把这5个语句抽取出来组成一个模块D,则模块D的内聚类型为(39)内聚。以下关于该类内聚的叙述中,不正确的是(40)。(39)
针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。intIsLeap(intyear){if(year%4==0){if((year%100==0){
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天)。活动EH最多可以晚开始①天而不影响项目的进度。由于某种原因,现在需要同一个工作人员完成BC和BD,则完成该项目的最少时间为②天
以下关于软件测试原则的叙述中,正确的是______。①所有软件测试都应追溯到用户需求②尽早地和不断地进行软件测试③完全测试是不可能的④测试无法发现软件潜在的缺陷⑤需要充分注意测试中的群集现象
随机试题
关于高档定价策略,下列说法正确的是________。
A、固化时收缩B、固化期15分钟C、固化期轻膨胀D、与牙齿有化学结合E、固化时体积无变化光固化复合树脂
男,38岁,间歇性浮肿10余年,伴恶心、呕吐1周。查血红蛋白80g/L,血压20.7/14.7kPa(155/110mmHg),尿蛋白(++),颗粒管型2~3个/HP,尿比重1.010~1.012。可能的诊断是
平安印刷厂系某省A市和平区乡办企业,1995年与同省B市人文出版社(位于该市河东区)签定一份合同,由平安印刷厂给人文出版社印刷小学教材,人文出版社支付印刷费。从1995年起,平安印刷厂即根据该合同一直在其工厂内为人文出版社印刷小学教材。到1999年,人文
一般来说,坍落度小于()的新拌混凝土,采用维勃稠度仪测定其工作性。
单层厂房的支撑系统包括柱间支撑和屋盖支撑两大部分。但其作用并不包括下列选项中的()。
建筑工程中,两个力大小相等,方向相反,作用线相重合,这是二力的( )。
下列关于海关征收滞报金的表述,正确的是()。
要在导游讲解中正确和熟练地运用类比法,地陪需要熟悉和掌握()知识。
作为职业活动内在的道德准则,“忠诚”的本质要求是()。
最新回复
(
0
)