首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补C函数中的空缺(1)~(5),将解答写在答题纸的对应栏内。 【说明】 函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点
阅读以下说明和C函数,填补C函数中的空缺(1)~(5),将解答写在答题纸的对应栏内。 【说明】 函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点
admin
2013-07-03
35
问题
阅读以下说明和C函数,填补C函数中的空缺(1)~(5),将解答写在答题纸的对应栏内。
【说明】
函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点的单链表的头指针。
例如,单链表LA、LB的示例如下图中的(a)、(b)所示,删除与LB共有的元素后的LA如下图中的(c)所示。
链表的结点类型定义如下:
typedef struct Node{
int data:
struct Node*next:
}Node,*LinkList;
函数SetDiff(LinkList LA,LinkList LB)的处理思路如下:
(1)从LA的第一个元素结点开始,令LA的第一个元素为当前元素;
(2)在LB中进行顺序查找,查找与LA的当前元素相同者,方法是:令LA的当前元素先与LB的第一个元素进行比较,若相等,则结束在LB中的查找过程,否则继续与LB的下一个元素比较,重复以上过程,直到LB中的某一个元素与LA的当前元素相等(表明查找成功),或者到达LB的表尾(表明查找失败)为止;
(3)结束在LB表的一次查找后,若在LB中发现了与LA的当前元素相同者,则删除LA的当前元素,否则,保留LA的当前元素;
(4)取LA的下一个元素为当前元素,重复步骤(2)、(3),直到LA的表尾。
【C函数】
void SetDJ.ff(LinkLJ st LA,LinkLi st LB)
{
LinkList pre,pa,pb;
/*pa用于指向单链表LA的当前元素结点,pre指向pa所指元素的前驱*/
/*pb用于指向单链表LB的元素结点*/
(1)
;/*开始时令pa指向LA的第一个元素*/
pre: LA;
while(pa){
pb=LB->next;
/*在LB中查找与LA的当前元素相同者,直到找到或者到达表尾*/
while(
(2)
){
if(pa->data= =pb->data)
break;
(3)
;
}
if(!pb){
/*若在LB中没有找到与LA中当前元素相同者,则继续考查LA的后续元素*/
pre=pa;
pa=pa->next;
}
else{
/*若在LB中找到与LA的当前元素相同者,则删除LA的当前元素*/
pre->next=
(4)
;
free(pa);
pa=
(5)
;
}
}
}
选项
答案
(1)pa=LA->next (2)pb!=NULL或pb或其等价形式 (3)pb=pb->next (4)pa->next (5)pre->next
解析
本题考查考生对链表基本操作的掌握。
(1)处用于实现将pa指向LA的第一个元素。由于单链表LA包含头结点,其第一个元素应为头结点的后继结点。因此,(1)处应填入pa=LA->next。此时,pre指向LA的头结点。
根据题目描述的函数SetDiff(LinkList LA,LinkListLB)的处理思路,在单链表LB中顺序查找与LA中当前元素相同的结点。(2)处需要填入一个循环条件,该循环条件应能实现对单链表LB的遍历。因此,(2)处应填入pb!=NULL或其等价形式。if(pa->data=pb->data)break语句用于实现处理思路中描述的“相等,则结束在LB中的查找过程”。而(3)处需要实现将选择了B中的下一个元素,因此应填入pb=pb->next。
(4)和(5)用于实现LA中元素的删除。要删除单链表LA的当前元素,应使其前驱结点的next指针指向当前结点的后继结点的next指针。因此,(4)处应填入pa->next。当前指针pa应指向pre的后继结点,则(5)处应填入pre->next。
转载请注明原文地址:https://jikaoti.com/ti/hbW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某企业长期从事大量的数据处理工作,所建立的一系列规范中一般不包括________。
统计报表中常包括填表说明,以指导填表者填写。填表说明中一般不包括______。
在Excel中,若A1单元格中的内容为“全国计算机技术与软件专业技术资格(水平)考试”,在A2单元格中输入函数=LEFT(A1,2),则A2单元格显示的内容是______。
在Word中打开英文文档或者在文档中输入英文信息时,系统会自动对拼写和语法进行检查,如果出现红色波形下划线则表示存在(50)。
下列关于计算机病毒的说法中错误的是_______。
双击某个非可执行程序的文件名将(24)。
用计算机处理信息时,常对许多信息采用适当的编码。例如职工编码、商品编码、性别编码、文化程度编码等。编码有许多好处,但不包括(66)。
计算机病毒是一段程序,一般隐藏在______中。
计算机中数据输入输出的控制方式有多种,“中断”方式的优点不包括(8)。
甲和乙用如下图的两个转盘做游戏,游戏规则如下:分别旋转两个转盘,当两个转盘所转到的数字之积为奇数时,甲得2分;当所转到的数字之积为偶数时,乙得1分,则这游戏规则______。
随机试题
联运通用平托盘性能要求的国家技术标准为()。
破产费用和共益债务以债务人财产优先支付的债务。()
呼吸心搏骤停的婴幼儿心脏按压的频率为
游离有机酸易溶于
临床上牙髓息肉一般见于()
某大型物资管理部门打算实行仓库物流的自动化,可实施的方案有两个,这两个方案都可以达到仓库物流自动化的目标。但是,两方案初期投资额、年作业费用及寿命期不同(如下表所示),基准收益率为12%。已知:(P/A,12%,7)=4.564,(P/A,12%,
F公司经营多种产品,最近两年的财务报表数据摘要如下:要求:进行以下计算、分析和判断(提示:为了简化计算和分析,计算各种财务比率时需要的存量指标如资产、所有者权益等,均使用期末数;一年按360天计算)。总资产净利率变动分析:确定总资产净利率变动的差额
设甲厂与乙厂生产的电阻器的阻值分别服从N(40,22)和N(300,202),则下面________正确地描述了甲、乙两厂的电阻器的阻值情况。
阅读下面这首唐诗,回答问题。春夜别友人二首(其一)陈子昂银烛吐青烟,金樽对绮筵。离堂思琴瑟,别路绕山川。明月隐高树,长河没晓天。悠悠洛阳道,此会在何年。
为计算an的值,某人编写了函数power如下:PrivateFunctionpower(aAsInteger,nAsInteger)AsLong DimsAsLong p=a Fork=1Ton p=p*a Next
最新回复
(
0
)