首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
admin
2019-01-16
27
问题
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O(m+n+p),其中m、n和p分别为3个表的长度。
选项
答案
typedef struct LNode{ int data; struct LNode * next; } * Linkedlist; LinkedList Common(LinkedList A,B,C) { //链表A、链表B和链表C是三个带头结点且结点元素值非递减排列的有序表 //本算法使链表A仅留下三个表均包含的结点,且结点值不重复,释放所有结点 Linkedlist * pa, * pb, * pc, * pre, *u; pa=A一>next;pb=B一>next;pc=C一>next; //pa,pb,pc分别是链表A,B,C的工作指针 pre=A; //pre是链表A中当前结点的前驱结点的指针 while(pa&&pb&&pc){ //当链表A,B和C均不空时,查找三链表共同元素 while(pa&&pb) if(pa一>data
data){u=pa;pa=pa->next;free(u);}//结点元素值小时,后移指针 else if(pa一>data>pb一>data)pb=pb一>next; else if(pa&&pb) { //处理链表A和B元素值相等的结点 while(pc&&pc一>data
data)pc=pc一>next; if(pc) { //pc当前结点值与pa当前结点值不等,pa后移指针 if(pc一>data>pa->data) { u=pa;pa=pa一>next;free(u);} else { //pc、pa和pb对应结点元素值相等 if(pre==A) {pre一>next=Pa;pre=pa;Pa=pa->next;} //结果表中第一个结点 else if(pre一>data==pa一>data) //(处理)重复结点不链入链表A { u=pa;pa=pa->next;free(u);} else{pre一>next=pa;pre=pa;pa=pa一>next;}//将新结点链入链表A pb=pb一>next;pc=pc->next; //链表的工作指针后移 }//else pc,pa和pb对应结点元素值相等 } if{pa==null)pre一>next=null; //原链表A已到尾,置新链表A表尾 else{ //处理原链表A未到尾而链表B或链表C到尾的情况 pre一>next=null; //置链表A表尾标记 while(pa!=null){u=pa;pa---pa一>next;free(u);} //删除原链表A剩余元素 } } } } 提示:留下3个链表中的公共数据,首先查找链表A和链表B中公共数据,再去链表C中找有无该数据。要消除重复元素,应记住前驱,要求时间复杂度为O(m+n+p),在查找每个链表时,指针不能回溯。 算法实现时,链表A、链表B和链表C均从头到尾(严格地说链表B、链表C中最多一个到尾)遍历一遍,算法时间复杂度符合O(m+n+p)。算法主要有while(pa&&pb&&p)。
解析
转载请注明原文地址:https://kaotiyun.com/show/sYRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
17世纪英国资产阶级革命中,曾利用了古老文件同专制王权作斗争。这一古老文件是()
下列不属于粱启超的新史学思想的是()。
阅读材料,回答以下问题:重庆中央党部,暨中央执监委员诸同志均鉴:今年4月,临时全国代表大会宣言,说明此次抗战之原因,曰:“自塘沽协定以来,吾人所以忍辱负重与倭国周旋,无非欲停止军事行动,采用和平方法,先谋北方各省之保全,再进而谋东北四省问题之合理解决,
下列法律文件中,规定内阁对君主负责的是()。
下列关于《凡尔赛和约》的说法,全部错误的是()。①《凡尔赛和约》中不许德国设防区是莱茵河西岸50公里以内区域②《凡尔赛和约》中,战胜国处置德国的全部海外殖民地的方式是“托管制”③和约有关德国疆界问题,把原属波兰的领上基本上归还波兰④
洋务运动期间,军事企业主要采取的组织形式是()。
1984年,《中共中央关于经济体制改革的决定》中强调,商品经济的充分发展是社会经济发展不可逾越的阶段,市场调节的辅助性作用不可缺少,并指出要有步骤地逐步缩小指令性计划的范围。这表明当时我国()
下列各种情况中,应采用异步通信方式的是()。
指令系统字长16位,每个地址码为6位,采用扩展操作码的方式,试设计14条二地址指令,100条一地址指令,100条零地址指令。(1)画出操作码的扩展形式。(2)下图为指令译码逻辑图,其中只给出了二地址指令的译码逻辑,试补全一地址指令和零地址指令的
有两部计算机M1和M2,指令系统相同。它们的操作频率频率分别是400MHz和200MHz。指令分成A、B和C三类,在M1上执行分别需4、6和8个周期;在M2上执行分别需2、4和3个周期。现有一程序在两机器上执行,其中A、B和C三类指令依次占30%、50
随机试题
中国的人口发展形势非常严峻,为此国家统计局每10年进行一次全国人口普查,以掌握全国人口的增长速度及规模。按照下列要求完成对第五次、第六次人口普查数据的统计分析:在合并后的工作表“比较数据”中的数据区域最右边依次增加“人口增长数”和“比重变化”两列,计算
设函数f(x)=在x=0处连续,则a=_______.
新民主主义革命的中心内容是【】
下列哪一项是出院教育的目标行为
患者,女性,心脏联合瓣膜病10年,发热1个月,体温为37.2~37.6℃,庆食,消瘦,贫血貌。确诊手段首选
属于气体灭菌剂的是()。
某律师同为甲、乙两公司的常年法律顾问,而且在其顾问服务项目中均包括诉讼案件的代理,现甲、乙两公司之间因合同发生纠纷起诉至法院,两公司均要求该律师担任其代理律师。对此该律师应该怎么办?()
测量内隐记忆的加工分离程序试图分离
为了减少汉字输入,将字段"民族"的全部可能输入事先存入一个表中,在窗体设计时,可以将输入"民族"对应的控件设置为
TheImportanceofAgricultureThedevelopmentofagricultureandthebalancebetweenfoodandpopulationareChina’sfunda
最新回复
(
0
)