首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 函数int Toplogcal(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE网,图中顶点从1
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 函数int Toplogcal(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE网,图中顶点从1
admin
2009-05-15
60
问题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
函数int Toplogcal(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:
typedef struct Gnode{ /*邻接表的表节点类型*/
int adjvex; /*邻接顶点编号*/
int weieht; /*弧上的权值*/
stract Gnode *nextarc; /*指示下一个弧的节点*/
}Gnode;
typedef struct Adjlist{ /*邻接表的头节点类型*/
char vdata; /*顶点的数据信息*/
struct Gnode *Firstadj; /*指向邻接表的第一个表节点*/
}Adjlist;
typedef struct LinkedWDigraph{ /*图的类型*/
int n,e; /*图中顶点个数和边数*/
struct Adjlist *head; /*指向图中第一个顶点的邻接表的头节点*/
}LinkedWDigraph;
例如,某AOE网如图5-4所示,其邻接表存储结构如图5-5所示。
int Toplogical(LinkedWDigraph G)
{
Gnode *p;
int j,w,top=0;
int *Stack,*ve,*indegree;
ve=(int*)malloc((G.n+1)*sizeof(int));
indegree=(int*)malloc((G.n+1)*sizeof(int)); /*存储网中各顶点的入度*/
Stack=(int*)malloe((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(j=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*/
}/*while*/
return (5);
}/*Toplogical*/
选项
答案
(1) indegree[p->adjvex]++,及其等价形式 (2) Stack[top--],及其等价形式 (3) indegree[p->adjvex]--,及其等价形式 (4) ve[w]+p->weight>ve[p->adjvex],及其等价形式 (5) ye[w),及其等价形式
解析
本题考查AOE网络及其拓扑排序和关键路径,做题前需要先弄清楚图G的存储结构。
根据注释,空(1)所在for循环用来统计AOE网中各顶点的入度。根据入度的定义及题中AOE网的存储结构,当p不为NULL时,应将p->adjvex对应的顶点的入度加1。又数组 indegree正是用来存储各顶点入度的,从紧接着的用来求入度为0的顶点的for循环可看出, indegree数组有效下标是从1到G.n,而顶点的编号正好也是从1开始,故空(1)应填 indegree[p->adjvex]++。
各顶点入度统计结束后,收集入度为0的顶点并将其编号保存在栈Stack(数组模拟)中,栈顶指针为数组下表top。
接下来根据各顶点入度进行拓扑排序输出。
空(2)是给变量w赋值,紧接着将w对应的信息输出,根据拓扑排序算法,此处是选择一个入度为0的顶点输出。Stack栈存储的正是入度为0的顶点编号,故空(2)应填Stack[top--]。注意top指向的栈顶,因此不能写成Stack[--top];另外,这里是出栈操作,不能写成Stack[top]。
根据拓扑排序算法,接下来需要将变量w对应的顶点的所有出边删除,即将对应的顶点的入度减1。类似空(1),空(3)应填indegree[p->adjvex]--。接着判断相应顶点的入度是否为0,为0时将其入栈。
空(4)比较难确定,因程序中并未说明ve数组的用途,注意到函数需要返回关键路径的长度,而至此尚无任何相关语句。因此可以断言ve数组正是为了计算关键路径长度而设置的。关键路径是指从开始到结束点的最长路径,所以只要保证每到一个顶点vx,ve[vx]中存储的都是从开始顶点到vx的最长路径(即顶点vx的最早发生时间)即可。故空(4)应填“ve[w]+p->weight>ve[p->adjvex]”。这样,空(5)很容易得出应填“ve[w]”。
转载请注明原文地址:https://www.kaotiyun.com/show/B5xZ777K
本试题收录于:
软件设计师上午基础知识考试题库软考中级分类
0
软件设计师上午基础知识考试
软考中级
相关试题推荐
FDDI与TokenRing都采用(21)传递协议,在FDDI的令牌帧中有(22),其主要作用是(23)。FDDI在(24)产生新令牌帧,允许在环上同时存在(25)。
在OSI参考模型中,上层协议实体与下层协议实体之间的逻辑接口叫做服务访问点(SAP)。在Internet网中,目的地址106.248.59.37是(64)的服务访问点。
某运行RIP协议的校园网拓扑结构图如图7-4所示。在路由器RouterA上定义一条从Internet网到达校园网内部192.168.1.0/24网段的静态路由,完成此任务的配置语句是(56)。
4台Linux主机通过如图5-2所示的方式互联,则实现PC1与PC4之间互访的步骤为:1.运行(61)命令关闭计算机,在PC2与PC3上添加第二块网卡(eth1),重新启动;2.在PC2与PC3上为第二块网卡分配IP地址,并激活该网络接口,对于PC3
网络操作系统是使网络上各计算机能方便而有效地共享网络资源,为用户提供所需的各种服务的软件和有关规程的集合。以下是对各种NOS产品的描述。(53)由外层(Shell)和操作系统核心所构成,早期的产品的主要是用作网络文件服务器,并且采用了与TCP/I
ICMP是Internet控制协议报文协议,它允许主机或路由器报告(37)和提供有关异常情况的报告。它是(38)的组成部分,其报文格式包括报文头和数据区两部分,其中报文头部分是由—些刨等三个字段组成,字段长度分别为(40)。ICMP可作为询问报文,用来测试
在LAN拓扑机构中,(86)是最古老的一种连接方式,结构是具有中心节点的拓扑;(87)是使用同一媒体或电缆连接所有端用户的一种方式,可以用令牌传递或用CSMA/CD控制媒体访问的拓扑;(88)在LAN中使用较多,仅使用象令牌传递这样的确定性的媒体空转法。
应用程序可以通过执行对象的操作来改变对象的属性值,但它必须通过 ______ 的传递。
Packet-switching wireless networks are preferable(41)when transmissions are(42)because of the way charges are(43)per packet. Cir
Packet-switching wireless networks are preferable(41)when transmissions are(42)because of the way charges are(43)per packet. Cir
随机试题
诱发糖尿病酮症酸中毒的因素不包括
成年以后不具有造血功能的骨髓存在于
某等级公路路基压实质量检验,经检测的各点干密度记录见下表,实验室给出的最大干密度为1.82g/cm3,压实度的规定值为95%,t0.95/0.494,回答以下问题:该路段的压实度极值为()。
图5-80所示圆截面杆,直径为d杆两端许可力偶矩为M0。若横截面面积增加1倍,许可力偶矩Mo为()。
教师的教育专业素养除要求具有先进的教育理念、良好的教育能力,还要求具有一定的()。
Writeanessayof160-200wordsbasedonthefollowinggraph.Inyouressay,youshould1.describethetendencyillustratedin
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
关于SQL查询,以下说法中不正确的是()。
Justinwasalwaysprepared.Hismottowas"Neverthrowanythingout,youneverknowwhenitmightcomeinhandy."Hisbedroomwa
Hewasalwaysconcernedabout____________(穷人和病人).
最新回复
(
0
)