试题详情

试题内容

阅读下列说明和C代码,回答问题1至问题2,将解答写在答题纸的对应栏内
【说明】
一个无向连通图G上的哈密尔顿(Hamilton)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路径。一种求解无向图上的哈密尔顿回路算法的基本思想如下:
假设图G存在一个从顶点u0出发的哈密尔顿回路u0—u1—u2—u3—...—u0—un-1—u0。算法从顶点u0出发,访问该顶点的一个未被访问的领接顶点u1 ,接着从顶点u1出发,访问u1的一个未被访问的领接顶点u2,...。对顶点ui,重复进行以下操作:访问ui的一个为被访问的领接顶点ui+1;若ui的所有领接顶点均已被访问,则返回到顶点ui-1,考虑ui-1的下一个未被访问的领接顶点,仍记为ui;直到找到一个哈密尔顿回路或者找不到哈密尔顿回路,算法结束。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
n:图G中的顶点数
c[][]:图G的领接矩阵
k:统计变量,当前已经访问的顶点数为k+1
x[k]:第k个访问的顶点编号,从0开始
visited[x[k]]:第k个顶点的访问标志,0表示未访问,1表示已访问
(2)C程序
#include
#include
#define MAX 4Void Hamilton(int n,int x[MAX],int c[MAX][MAX]){
int i;
int visited[MAX];
int k;
/*初始化x数组和visited数组*/
for(i=o;ix[i]=0;
Visited[i]=0;
}
/*访问起初顶点*/
K=0;
(1)  ;
x[0]=0;
k=k+1;
/*访问其它顶点*/
while(k>0){
x[k]=x[k]+1;
while(x[k]if(   (2)   &&c[x[k-1]][x[k]]==1){/*领接顶点x[k]未被访问过*/
break;
}
else{
x[k]=x[k]+1;
}
}
if(x[k]for(k=0;kprintf(“%d--”,x[k]);/*输出哈密尔顿回路*/
}
printf(“%d\n”,x[0]);
return;
}
else if(x[k]&&k (4)   ;
k=k+1;
}
else {/*没有未被访问过的领接顶点,回退到上一个顶点*/
x[k]=0;
visited[x[k]]=0;
(5)  ;
}
}
}
【问题1】(10分)
根据题干说明,填充C代码中的空(1)~(5)。
【问题2】(5分)
根据题干说明和C代码,算法采用的设计策略是(6),该方法在遍历图的顶点时,采用的是(7)方法(深度优先或广度优先)。
查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

3题:

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某高校图书馆欲建设—个图书馆管理系统,目前已经完成了需求分析阶段的工作。功能需求均使用用例进行描述,其中用例“借书(Check Out Books】”的详细描述如下。
参与者:读者<Patron>。
典型事件流:
1输入读者ID;
2.确认该读者能够借阅图书,并记录读者ID;
3输入所要借阅的图书ID:
4根据图书目录中的图书ID确认该书可以借阅,计算归还时间,生成借阅记录:
5.通知读者图书归还时间。
重复步骤3-5,直到读者结束借阅图书。
备选事件流:
2a.若读者不能借阅图书,说明读者违反了图书馆的借书制度(例如,没有支付借书费用等)
(1)告知渎者不能借阅,并说明拒绝借阅的原因
(2)本用例结束
4a.读者要借阅的书无法外借
(1)告知读者本书无法借阅;
(2)回到步骤3。
4题:

试题四
阅读下列函数说明、图和C代码,将应填入  (n)  处的字句。
[说明]
散列文件的存储单位称为桶(BUCKET)。假如一个桶能存放m个记录,当桶中已有 m个同义词(散列函数值相同)的记录时,存放第m+1个同义词会发生“溢出”。此时需要将第m+1个同义词存放到另一个称为“溢出桶”的桶中。相对地,称存放前m个同义词的桶为“基桶”。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。
例如:设散列函数为Hash(Key)=Key mod 7,记录的关键字序列为15,14,21,87,97,293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图4-1所示。
[图4-1]
2题:试题二
按照下列图表,填写答题纸的对应栏内。
[说明]
为了提高接种工作,提高效率,并未了抗击疫情提供疫苗接种数据支撑,需要开发一个信息系统,下述需求完成该系统的数据库设计。
(1)记录疫苗供应商的信息,包括供应商名称,地址和一个电话。
(2)记录接种医院的信息,包括医院名称、地址和一个电话。
(3)记录接种者个人信息,包括姓名、身份证号和一个电话。
(4)记录接种者疫苗接种信息,包括接种医院信息,被接种者信息,疫苗供应商名称和接种日期,为了提高免疫力,接种者可能需要进行多次疫苗接种,(每天最多接种一次,每次都可以在全市任意一家医院进行疫苗接种)。
【概念模型设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):

图2-1 E-R图
1题:

试题一
阅读下列说明和图。
[说明]
某公司欲开发招聘系统以提高招聘效率,其主要功能如下:
(1)接受申请
验证应聘者所提供的自身信息是否完整,是否说明了应聘职位,受理验证合格的申请,给应聘者发送致谢信息。
(2)评估应聘者
根据部门经理设置的职位要求,审查已经受理的申请;对未被录用的应聘者进行谢绝处理,将未被录用的应聘者信息存入未录用的应聘者表,并给其发送谢绝决策;对录用的应聘者进行职位安排评价,将评价结果存入评价结果表,并给其发送录用决策,发送录用职位和录用者信息给工资系统。
现采用结构化方法对招聘系统进行分析与设计,获得如图1-1所示的顶层数据流图、图1-2所示0层数据流图和图1-3所示1层数据流图。

6题:阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某公司的组织结构图如图6-1所示,现采用组合(Composition)设计模式来设计,得到如图6-2所示的类图。
其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司/办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。

图6-1  组织结构图

1题:阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某大型披萨加工和销售商为了有效管理生产和销售情况,欲开发一披萨信息系统, 其主要功能如下:
(1)销售。处理客户的订单信息,生成销售订单,并将其记录在销售订单表中。销售订单记录了订购者、所订购的披萨、期望的交付日期等信息。
(2)生产控制。根据销售订单以及库存的披萨数量,制定披萨生产计划(包括生产哪些披萨、生产顺序和生产量等),并将其保存在生产计划表中。
(3)生产。根据生产计划和配方表中的披萨配方,向库存发出原材料申领单,将制作好的披萨的信息存入库存表中,以便及时进行交付。
(4)采购。根据所需原材料及库存量,确定采购数量,向供应商发送采购订单,并将其记录在采购订单表中;得到供应商的供应量,将原材料数量记录在库存表中,在采购订单表中标记已完成采购的订单。
(5)运送。根据销售订单将披萨交付给客户,并记录在交付记录表中。
(6)财务管理。在披萨交付后,为客户开具费用清单,收款并出具收据;依据完成的采购订单给供应商支付原材料费用并