首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
有两个单链表La和Lb,La中有m个元素,Lh中的元素个数为n。已知两个链表均为递增的单向链表。现想将两个链表归并成一个递增的单向链表,且希望利用原来的结点空间,请回答下列问题: (1)给出算法的主要思想; (2)写出算法的实现函数; (3)总
有两个单链表La和Lb,La中有m个元素,Lh中的元素个数为n。已知两个链表均为递增的单向链表。现想将两个链表归并成一个递增的单向链表,且希望利用原来的结点空间,请回答下列问题: (1)给出算法的主要思想; (2)写出算法的实现函数; (3)总
admin
2014-07-18
86
问题
有两个单链表La和Lb,La中有m个元素,Lh中的元素个数为n。已知两个链表均为递增的单向链表。现想将两个链表归并成一个递增的单向链表,且希望利用原来的结点空间,请回答下列问题:
(1)给出算法的主要思想;
(2)写出算法的实现函数;
(3)总结所用算法的时间和空间复杂度。
选项
答案
(1)基本思想:遍历链表La和Lb,将其元素值进行比较,再合并成一个递增的单向链表。 (2)算法的实现如下: 链表结点定义为: struct node{ int value; struct node*Next: }; struct node *merge(struct node*a,struct node*b){ struct node *P; struct node *q; struct node *t; if(a->value<=b->value){//比较当前指针所指值的大小 P=a: q=b; }else{ P=b: q=a: } t=P: while(q){//如果b链表先结束,那么将a链表剩余结点全部合并到新链表 if(p->Next==NULL){ p->Next=q; break: } if(q->value
Next ->Value){ struct node * k=q->Next; q->Next=p->Next; p=p->Next; q=k; continue; } p=p->Next; } return t: } (3)遍历链表的时间复杂度为O(max(m,n)),算法实现过程中使用的辅助空间为常量,空间复杂度为O(1)。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/Maxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
毛泽东从事了大量理论研究工作,系统阐述了新民主主义的理论,下列选项中,不属于这一范围的是()
元代对边疆地区的统治方式不同于其他三地的一地是()。
苏州的踹工、织工、纸工、烛业工人,景德镇的陶瓷工、门头沟的煤矿工、北京的香工,云南的矿工、广州的织工、陕西的木工和铁工等,均爆发过反对雇主克扣工价、开除工匠和要求增加工银的()斗争。
下列对凡尔赛和约中有关德国疆界问题的表述,正确是()。
()的设置是清王朝实行满汉联合、以汉制汉统治方式在军事上的具体体现
简述鸦片战争的三个阶段。
菲律宾联盟的创建者是()
火的使用,是人类在征服自然的进程中所取得的伟大成果。人类开始使用天然火是在()。
Demandpaging算法是paging算法在虚拟存储空间管理的扩展。其主要的改进是:仅当需要访问某页面时,如果它不在内存,把它调入内存。按照这个思路,将segmentation算法(段式存储管理算法)扩展到虚拟存储空间管理,也可以产生类似的算法,不妨
某计算机采用Cache一主存一磁盘三级存储系统。Cache的访问时间为t1ns,命中率为p1;若Cache未命中,CPU需直接访问主存,访问时间为t2ns,主存命中率为p2;若所需数据字不在主存中,则访问主存未命中、将包含所需数据字的磁盘数据块装入主存共需
随机试题
设从键盘输入一整数的序列:a1,a2,a3,…an,试编写算法实现:用栈结构存储输入的整数,当ai≠一1时,将ai进栈;当ai=一1时,输入栈顶整数并出栈。算法应对异常情况(如栈满等)给出相应的信息。
(2008年10月)毛泽东在《关于正确处理人民内部矛盾的问题》一文中提出,社会主义社会的基本矛盾是________、________。
A、胸部后前位B、胸部右侧位C、深呼气后屏气后前位D、左侧位E、前弓位气胸常用摄影体位是
属于合同交底工作的是( )。
狭义的资产评估程序是( )。
根据《中华人民共和国民事诉讼法》的规定,在执行过程中,人民法院应当裁定中止执行的情形是()。
新闻评论是指媒体带着鲜明的针对性和引导性,对当前重大问题和典型新闻事件发布的议论评说,是媒体上社论、评论员文章、短评、编者按、专栏评论、述评等的总称。根据上述定义,下列属于新闻评论的是:
第一段“其用心”所指的,符合文意的一项是:第五段“在自己的瓦砾中修补老例”在文中的含义,理解不正确的一项是:
有以下程序intadd(inta,intb)main(){return(a+b);}{intk,(*f)(),a=5,b=10;f=add;}则以下函数调用语句错误的是
考生文件夹下存在一个数据库文件“samp3.aecdb”,里面已经设计好窗体对象“frest”及宏对象“m1”。试在此基础上按照以下要求补充窗体设计:将窗体标题设置为“测试窗体”。注意:不允许修改窗体对象frest中未涉及的属性;不允许修改宏
最新回复
(
0
)