首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C函数,将应填入(n)处的字句写在对应栏内。 【说明】 已知集合A和B的元素分别用不含头结点的单链表存储,函数Difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10, 20,15,
阅读下列说明和C函数,将应填入(n)处的字句写在对应栏内。 【说明】 已知集合A和B的元素分别用不含头结点的单链表存储,函数Difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10, 20,15,
admin
2009-02-01
81
问题
阅读下列说明和C函数,将应填入(n)处的字句写在对应栏内。
【说明】
已知集合A和B的元素分别用不含头结点的单链表存储,函数Difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10, 20,15,25,30},集合B={5,15,35,25},如图(a)所示,运算完成后的结果如图(b)所示。
链表结点的结构类型定义如下:
typedef struct Node{
ElemType elem;
struct Node *next;
}NodeType;
【C函数】
void Difference(NodeType **LA,NodeType *LB)
{
NodeType *pa, *pb, *pre, *q;
pre=NULL;
(1);
while (pa) {
pb=LB;
while((2))
pb=pb->next;
if((3)) {
if(!pre)
*LA=(4);
else
(5)=pa->next;
q = pa;
pa=pa->next;
free(q);
}
else {
(6);
pa=pa->next;
}
}
}
选项
答案
(1)pa=*LA (2)pb && pb->elem!=pa->elem,或其等价表示 (3)pb或pb!=NULL (4)pa->next,或(*pa).next,或其等价表示 (5)pre->next,或(*pre).next (6)pre=pa
解析
本题考查链表结构上的基本运算。
集合A与B的差是指在集合A中而不在集合B中的元素。本题用链表表示集合并将运算结果用表示集合A的链表存储,因此涉及到链表上的查找、删除基本运算。
基本思路为:对于集合A中的每个元素,在集合B中进行查找,若找到,则应将该元素从集合A中去掉;否则保留,用两层循环实现,外层循环用于遍历集合A,内层循环遍历集合B。
代码中的指针pa用于指向集合A的元素;pb指向集合B的元素;临时指针q指向需要被删除的元素;pre用于实现删除时结点的链接,与pa保持所指结点的前后继关系。
显然,pa需要一个初始值,即指向集合A的第一个元素结点。由于参数LA是指向集合A第一个结点的指针的指针,因此空(1)处应填入pa=*LA。
在内层循环中遍历集合B时,初始时令pb指向B的第一个元素(pb=LB),此后应在链表中查找与A中当前元素相同者,因此空(2)处应填入pb && pb->elem != pa->elem。
此后,应判断在B中是否找到指定元素。显然,若找到(即pb->elem=pa->elem),则指针pb不为空,否则,pb为空。因此,空(3)处填入pb或pb!=NULL,空(6)处则填入pre=pa。
由于链表不带头结点,因此,当需要删除集合A的第一个元素时,表示该集合的链表头指针会被修改。pre初始值为NULL,可标志删除的是否为A的第一个元素。因此查找成功时,pre为空(!pre成立)表示需要删除A的第一个元素(pa指针所指),使得 A的头指针指向第二个元素,即应将*LA更新为pa->next,空(4)处填入pa->next。如果删除的不是第一个元素,则由于pa指向被删除的元素,而且pre与pa所指元素保持前后继关系,因此空(5)处应填入pre->next。
转载请注明原文地址:https://www.kaotiyun.com/show/y5DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
用等价类法划分Windows文件名称,应该分成(39)—个等价区间。
在数据库管理系统中,(13)不属于安全性控制机制。
设有职工EMP(职工号,姓名,性别,部门号,职务,进单位时间,电话),职务JOB(职务,月薪)和部门DEPT(部门号,部门名称,部门电话,负责人)实体集。一个职务可以由多个职工担任,但一个职工只能担任一个职务,并属于一个部门,部门负责人是一个职工。下图所示
风险分析在软件项目开发中具有重要作用,包括风险识别、风险预测、风险评估和风险控制等。“建立风险条目检查表”是(18)时的活动,“描述风险的结果”是(19)时的活动。
风险分析在软件项目开发中具有重要作用,包括风险识别、风险预测、风险评估和风险控制等。“建立风险条目检查表”是(18)时的活动,“描述风险的结果”是(19)时的活动。
(12)是指把数据以及操作数据的相关方法组合在同一个单元中,使我们可以把类作为软件中的基本复用单元,提高其内聚度,降低其耦合度。面向对象中的(13)机制是对现实世界中遗传现象的模拟,通过该机制,基类的属性和方法被遗传给派生类。
若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为______。
已知函数f()、g()的定义如下所示,执行表达式“x=f(5)”的运算时,若函数调用g(a)是引用调用(callbyreference)方式,则执行“x:f(5)”后x的值为(7);若函数调用g(a)是值调用(callbyvalue)方式,
某个应用中,需要对输入数据进行排序,输入数据序列基本有序(如输入为1,2,5,3,4,6,8,7)。在这种情况下,采用(40)排序算法最好,时间复杂度为(41)。(41)
针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支覆盖的要求。intMathMine(intx){intm=0;inti;for(i=x-1;i<=x+1;
随机试题
当剖切平面通过由回转面形成的孔或凹坑的轴线时,这些结构应按()绘制。
暗沟采用混凝土浇筑或浆砌片石砌筑时,要求满足的条件有()。
“手中鸟”理论的观点认为公司分配的股利越多,公司的股票价格越高。()
下列属于要约的是()。
单位新出台了一项优惠政策,某自媒体对政策进行了夸大解读。群众来服务大厅办事,被告知不符合优惠条件,群众情绪比较激动,如果你是工作人员,该怎么办?
王某潜入某工厂仓库盗窃,将仓库货物(价值)扔到院墙外,准备一会儿翻墙出去再捡。偶尔经过此处的刘某发现该货物无人看管,遂将其拿走,据为己有。10分钟后,王某来到院墙外,发现货物已无踪影。对于王某、刘某行为定性,下列哪一选项是正确的?()
将E-R图转换到关系模式时,实体与联系都可以表示成
Whatdayoftheweekisit?
Almostallhumanbeingsaremuchmore(intelligence)________thananimals.
Friendshipheightensthesenseofeachperson’sindividuality.InGermany,adolescentsformdeeplysentimentalattachments,not
最新回复
(
0
)