首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和c++代码,将应填入(n)处的字句写在对应栏内。 【说明】 本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个: creatLi
阅读以下说明和c++代码,将应填入(n)处的字句写在对应栏内。 【说明】 本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个: creatLi
admin
2009-02-15
79
问题
阅读以下说明和c++代码,将应填入(n)处的字句写在对应栏内。
【说明】
本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个:
creatList(): 创建从小到大的有序链表。
multiplyList(List L1, Llst L2): 将链表L1和链表L2合并。
print(): 打印链表。
【C++代码】
#include <iostream>
using namespace std;
class List;
class Node{
friend class List;
public:
Node(int data){
(1);
}
private:
int data;
Node *next;
};
class List{
public:
List(){list=NULL;}
void multiplyList(List L1, List L2);
void creatList();
void print();
private:
Node *list;
};
void List::creatList()
{
Node *p, *u, *pre;
int dara;
list=NULL;
wbile(1){
cout<<"输入链表的一项: (小于零,结束链表) "<<endl;
cin>>data;
if(dara<0)break;//小于零,结束输入
p=list;
while(p !=NULL && dara>p->data){//查找插入点
pre=p;
p=p->next;
}
u=(2);
if(p==list)list=u;
else pre->next=u;
(3);
}
}
void List::multiplyList(List L1, List L2)
{
Node *pL1, *pL2, *pL, *u;
list = NULL;
pL1 = L1.list;
pL2 = L2.11st;
while(pL1 != NULL && pL2 != NULL){
if(pL1->data < pL2->data){
u = new Node(pL1->data);
pL1 = pL1->next;
}else{
u = new Node(pL2->data);
pL2 = pL2->next;
}
if(list == NULL){
list =(4);
}else{
pL->next=u;
pL=u;
}
}
pL1 = (pL1 != NULL)? pL1:pL2;
while(pL1 != NULL){
u=(5);
pL1 = pL1->next;
if(list == NULL){
list=pL=u;
}else{
pL->next=u;
pL=u;
}
}
}
void List::print()
{
Node *p;
p = list;
while(p !=NULL){
cout<<p->data<<"\t";
p=p->next;
}
cout<<end1;
}
void main()
{
List L1, L2, L;
cout<<"创建第一个链表\n";L1.creatList();
cout<<"创建第二个链表\n";L2.creatList();
L1.print();L2.print();
L.multiplyList(L1,L2);
L.print();
}
选项
答案
(1) this->data=data,next=NULL (2) new Node(data) (3) u->next=p (4) pL=u (5) new Node(pL1->data)
解析
空(1)是进行一些初始化工作,类Node有两个成员变量data和next,故空(1)应填“this->data =data,next=NULL;”。
类List的createList方法中,通过while循环实现数据输入,为了升序存储链表,每读入一个数据,程序需要查找合适的插入点,亦通过一个while循环查找。因此空(2)是申请一个新的节点,应该调用Node的构造方法。故空(2)应填new Node(data),注意Node类的构造函数是有参数的。
接着将节点u插入到链表中,当p为list,说明此时应将u插入到当前第一个节点前(亦即p节点之前),将list赋值为u,否则,应将u插入到pre节点之后,p节点之前,将pre的next修改为u。这样,还需将u的next指向其下一个节点,即p,故空(3)应填u->next=p。
multiplyList负责将两个升序排列L1和L2的链表合并起来。通过while循环逐一比较,如果L1的当前节点的值大于L2的,则将L1的当前节点的值插入到结果链表list中,并将L1的当前节点指针下移,对L2同样处理。当list等于NULL时,因list初始化为NULL,则说明是结构链表的头节点。注意到else块中的pL变量的使用,可知pL变量是指向结构链表list的工作指针,故在结构链表生成第一节点时也需将其正确初始化。故空(4)应填pL=u。
while循环结束直到链表L1和L2有一个已经到达链尾。接着将剩余链表的指针赋给批L1,将剩余节点逐次加入到结果链表即可。故易得空(5)应填new Node(pL1->data)。
转载请注明原文地址:https://kaotiyun.com/show/IrDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在安全测试中,模拟攻击试验以模拟攻击来验证软件或信息系统的安全防护能力,其中拒绝服务(DoS)攻击是一种在安全测试中经常模拟的攻击行为,以下模拟攻击不属于拒绝服务攻击的是()。
若有关系R(A,B,C,D,E)和S(B,C,F,G),则R与S自然联结运算后的属性列有(17)个,与表达式π1,3,6,7(σ3<6(RS))等价的SQL语句如下:SELECT(18)FROM(19)WHERE(20);
()不是单元测试主要检查的内容。
若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是_______。
X软件公司的软件工程师张某兼职于Y科技公司,为完成Y科技公司交给的工作,做出了一项涉及计算机程序的发明。张某认为该发明是利用自己的业余时间完成的,可以以个人名义申请专利。此项专利申请权应归属()。
某财务系统在使用过程中,因个人所得税政策变化,需修改计算工资的程序。这种修改属于______维护。
在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。(39)
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若系统中字长为32位,磁盘上的物理块依次编号为:0、1、2、…,那么8192号物理块的使用情况在位示图中的第(12)个字中有所描述。
Youaredevelopingaserver-sideenterpriseapplication.Itmustsupportavarietyofdifferentclientsincludingdesktopbrowse
阅读以下说明和交换机的配置信息,回答问题1至问题3,将解答填入答题纸的对应栏内。[说明]某公司设3个部门,为了便于管理,每个部门组成1个VLAN,公司网络结构如图9-4所示。[交换机Switch1的部分配置信息]Switch
随机试题
阅读下面语段,回答问题:【端正好】碧云天,黄花地,西风紧,北雁南飞。晓来谁染霜林醉?总是离人泪。【滚绣球】恨相见得迟,怨归去得疾。柳丝长玉骢难系,恨不得倩疏林挂住斜晖。马儿迍迍的行,车儿快快的随,却告了相思回避,破题儿又早别离。听得道一
微丸剂的制备方法常用如下哪种方法
下列关于抽样误差的论述错误的是
广义的城市市政公用设施分为()两大类。
最常见的利率违规行为是()。
百里油菜花海所在地,且是北方小油菜发源地的是下列的()。
学生是人,是教育的对象,因而他们()。
Musiccomesinmanyforms;mostcountrieshaveastyleoftheirown【C1】______theturnofthecenturywhenjazzwasborn,America
A.printedB.somewhatC.sourceD.gatherE.competitionF.failsG.purposeH.influenceI.originJ.spreadK.innova
A、Naturaldisasters.B、Largechemicalfactories.C、Exhaustfromvehicles.D、Largeamountsofhouseholdgarbage.B男士说汽车尾气给环境造成很大的
最新回复
(
0
)