首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
admin
2019-08-01
55
问题
已知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<pb一>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<pa一>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剩余元素 } } } }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/f3Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
简述隋唐科举制的内容和意义。
赋税是我国古代国家宏观管理经济的重要手段。 据此回答问题:乾隆年间的税种有()
斯大林时期的经济体制最本质的特点是()。
乾隆时期,明确规定了驻藏大臣的地位与达赖班禅同等,并实行“金瓶掣签”制度的文件是()。
提出“天有常道,地有常数”,“制天命而用之”的思想家是()。
论述秦国商鞅变法的内容、过程以及重要意义。
民族区域自治制度是在国家的统一领导下,在()实行民族区域自治,设立自治机关,行使自治制度。
1628年出版了《心血运动论》一书,论证了血液在全身的循环运动,使生理学发展为科学的是()。
以下()协议完成了从网卡到IP地址的映射。
下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控
随机试题
莱姆病的传播媒介是()
商标注销后,商标权的终止日期()
A,CAB,SSC,TCBSD,Korthof培养基E,亚碲酸钾血琼脂尿液中分离钩端螺旋体使用
“水火既济”是指哪两脏的关系
男性,63岁,尿频,排尿迟缓4年,间歇肉眼血尿1年。B超检查可见膀胱壁毛糙,可见1.5cm×2.0cm×2.0cm大小强回声光团伴声影,前列腺4.2cm×4.0cm×10cm大小,残余尿100ml。
某书店开学前新进一批图书,原计划按40%的利润定价出售,售出80%的图书之后,剩下的图书打折促销,结果所得利润比原计划少14%,则剩下的图书销售时按定价打了几折?
某晚,甲欲杀害他的仇人乙,便趁夜深人静之时,翻墙进入乙家中,并将乙家卧室的房门撬开。之后甲看见床上躺着一人,便挥舞事先准备的刀具一阵乱砍。但由于当天乙的朋友丙来他家玩,晚上就在乙家留宿,甲用刀具砍的其实是丙。后丙因伤势过重而死亡。那么甲的行为:()
[2012年,第2题]设α(x)=1-cosx,β(x)=2x2,则当x→0时,下列结论中正确的是()。
一个五位数,左边三位数是右边两位数的5倍,如果把右边的两位数移到前面,则所得新的五位数要比原来的五位数的2倍还多75,则原来的五位数是()。
下列关于操作查询的说法中正确的是()。
最新回复
(
0
)