首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。 [函数6说明] 函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表
阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。 [函数6说明] 函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表
admin
2007-03-10
80
问题
阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。
[函数6说明]
函数DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:
typedef struct node {
int key;
struct node * next;
} * LinkedList;
[函数6]
int DelA InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)
{ LinkedListp,q,s,prep,pres;
int k;
if(! La->next‖! Lb->next‖->next‖len<=0)return-1;
p=La->next;prep=La;
while(p&&p->key!=key1){ / * 查找表A中键值为key1的结点 * /
prep=p;p=p->next;
}
if(! p)return -1; / * 表A中不存在键值为key1的结点 * /
q=p;k=1;
while(q&& (1) ){ / * 在表A中找出待删除的len个结点 * /
(2);k++;
}
if(! q)return-1: / * 表A中不存在要被删除的len个结点 * /
s=Lb->next; (3);
while(s s && s->key!=key2){ / * 查找表B中键值为key2的结点 * /
pres=s;s=s->next;
}
if(! s)return-1; / * 表B中不存在键值为key2的结点 * /
(4)=q->next; / * 将表A中的len个结点删除 * /
q->next=(5);
pres->next=p; / * 将len个结点移至表B * /
return 0;
}
选项
答案
(1)k<len (2)q=q->next (3)pres=Lb (4)prep->next (5)s或pres->next
解析
本题是在链表插入和删除单个结点的基础上进行扩展,一次性插入多个结点和删除多个结点其原理和插入、删除一个结点的运算是一致的。首先在A链表中查找键值为key1的结点,使用了下列循环:
While(p&&p->key!=key1) { / * 查找表A中键值为key1的结点 * /
Prep=p;p=p->next;
}因此,当找到键值为key1的结点时,p指向该结点,prep指向p的前驱。然后看在p的后面是否有len个结点,使用了下列语句:
q=p;k=1;
while(q&&(1)) { / * 在表A中找出待删除的len个结点 * /
(2);k++;
}显然,首先把q指向p,k为计数器,所以该循环的结束条件有2个,一个是p的后面没有 len个结点,这时q为空,所以(2)空应填写q=q->next,使q的指针往后移动;另一个是 p的后面有len个结点,这时k=len。所以(1)空应填写k<len。
根据上面的语句,如果p的后面有len个结点,则q指向第len个结点。如图2-2所示(虚线表示省略了中间若干个结点)。
同样,在表B中查找键值为key2的结点,使用了下列循环:
s=Lb->next;(3);
while(s&&s->key!=key2){ / * 查找表B中键值为key2的结点 * /
pres=s;s=s->next;
}首先,s指向第一个结点,然后进行循环,循环的结束条件也是2个,要么s为空(这时说明从头到尾都没有找到键值为key2的结点),要么找到了,s指向该结点,pres指向s的前驱。但是,如果第一个结点的键值就是key2的话,根据循环条件,循环中的语句不执行,则pres没有值,所以(3)空应该填写pres=Lb,使pres始终指向s的前驱。如图2-3所示 (虚线表示省略了中间若干个结点)。
最后将p到q的连续len个结点从A表中删除,在B表中插入,如图2-4所示。
程序中使用的语句如下:
(4)=q->next; / * 将表A中的len个结点删除 * /
q->next=(5);
pres->next=p; / * 将len个结点移至表B * /
要把p到q的连续len个结点从A表中删除,就要把p的前驱(prep)的next指向q的next,因此,(4)空应填写prep->next。然后把q的next指向B表中s,把s的前驱 (pres)的next指向p,所以,(5)空应填写s。
转载请注明原文地址:https://www.kaotiyun.com/show/MzjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
商业软件常先以试用软件形式发布。试用软件的特点一般不包括(20)。
Windows系统的文件夹组织结构足一种(31)。
对8位代码10101101进行奇偶校验,正确的结果是(33)。
某企业今年1至4月的销售额依次为a1、a2、a3、a4时,现采用加权平均来预测5月份的销售额。权重的比例为1:2:3:4,时间越近则权重越大,预测的结果为_______。
企业移动应用开发目标与消费者需求之间的差距属于应用鸿沟。消费者一般并不关心特定企业移动应用(APP)___________。
假设某Word文档中已存在宏“Marcol”,则下列方法中(48)不能正确使用这个宏。
新建一个Word文档,编辑结束后,执行“文件”菜单中的“保存”命令,则______。
结构化程序中的基本结构不包括(28)。
________________不会是信息系统的功能。
下列关于Windows7屏幕保护程序的叙述中,不正确的是__________。
随机试题
初产妇,孕妇37周。8小时前突然出现阴道流液,如小便样,6小时前开始出现规律宫缩,因胎手脱出于阴道口1小时就诊。查体:产妇烦躁不安,腹痛拒按,脉搏110次/分,呼吸28次/分,胎心160次/分,导尿时见血尿。属于子宫破裂的临床表现,正确的是
A.脑脊液检查为血性,颅内压增高B.脑脊液检查颜色正常C.脑脊液检查有蛋白细胞分离现象D.脑脊液检查为血性,颅内压正常E.脑脊液检查颜色正常,颅内压增高蛛网膜下腔出血患者脑脊液检查为
某三级公路地处丘陵地区,砂类土居多,设计车速40km/h,路基宽度8.5m,基层为石灰稳定砂砾,面层为8cm的沥青混凝土。路基施工正好赶上雨季,施工前,施工方做了如下准备工作:①对选择的雨期施工地段进行详细的现场调查研究,编制了实施性的雨期施工组织计划。②
简述交通运输业纳税审查要点。
市场准入是指监管部门采取行政许可手段审查、批准市场主体可以进入某一领域并从事相关活动的机制。广义上讲,银行的市场准入不包括()。
下列各项中,应计入营业外收入的是()。(2007年考题)
人生有时是需要选择遗忘的,在“_________,依依墟里烟”(《归园田居》)的田园生活中,陶渊明忘记了人世间的喧嚣与杂乱;在“_________,使我不得开心颜”(《梦游天姥吟留别》)的豪情壮志中,李白忘记了官场上的倾轧与是非;在“大江东去,______
在教学中讲授“果实”概念时,既选可食的果实,又选不可食的果实(如棉籽等),这样才有利于学生准确地掌握“果实”概念。这是运用了()。
我国《刑法》中属于限制责任能力的人有()。
唐诗的朦胧美,先是朦胧在它的形式美。唐代的律诗、绝句,每句字数相等,且求对仗、平仄音律,讲究字面的整齐性和音调的明亮感。唐代英才辈出的诗人们,几乎每一个都能在清纯的诗情和几近桎梏的格律的碰撞中,吟成几首流传后世的好诗。然而,既然格律已近乎桎梏,纵是最伟大的
最新回复
(
0
)