首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
admin
2019-01-16
21
问题
已知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
学硕统考专业
相关试题推荐
明末清初,著名学者()抗清失败,前往日本讲学,传播中国文化。
在欧盟发展历史上,促使欧盟正式成立的文件是()。
阅读下列史料,并回答问题:在琶勒尼斯(注:地名)一役获胜后,他(庇西特拉图)便占领政府,并解除人民武装;现在他已能稳定地握住僭主政权,并且取得那克索斯。以吕格达密斯为统治者。他解除人民武装的方法是这样的:他在塞修斯庙举行了一个武装的阅兵式,同时举行一次民
北宋时期,对市场商品价格管理主要采取()。
中国共产党在民主革命时期的不同阶段实行了不同的土地政策,其主要的根据是()。
在西欧列强海外殖民扩张进程中,各国之间相互争夺海上霸权。18世纪末,英国在争霸中取得胜利的根本原因在于()
(1)根据无类IP地址的规则,每个网段中有两个地址是不分配的:主机号全0表示网络地址,主机号全1表示广播地址。因此8位主机号所能表示的主机数就是28-2,即254台。该网络要划分为两个子网,每个子网要120台主机,因此主机位数X应该满足下面三个条件:
已知某CPU有16根地址线、8根数据线,并用MREQ作为访存控制信号(低电平有效)。现有下列存储芯片:1K×4位ROM、2K×4位ROM、4K×8位ROM、4K×8位RAM、8K×4位RAM、8K×8位RAM和非门、与非门、或非门若干,如下图所
某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间
一个客户机利用FTP协议从服务器上下载文件,如下图所示为整个过程中协议交换的过程,请回答如下问题:(1)该协议层图中第四层协议是什么?(2)如果FTP客户端采用了LIST命令来获得FTP服务器上的文件列表,该列表采用什么端口传输?
随机试题
根据《行政处罚法》规定,违法行为在二年内未被发现的,不再给予行政处罚。法律另有规定的除外()
6有机化工产品的特性与它的()有密切关系。
腊肠犬,雌性,8岁,不愿挪步,行动困难,不愿让主人抱。精神欠佳,食欲下降,腹围增大,尿失禁,肛门反射迟钝,触诊腰部皮肤紧张、痛叫。根治该病最有效的方法是
职业道德评价的作用有()。
建筑屋面各汇水范围内,雨水排水立管不宜少于()根。
公司希望通过历史数据和资料来预测下一年的市场销量,比较适合采用()。
公安机关在办理刑事案件中,在()应当用当地通用的语言进行讯问。
(单选题)近年来,网咖呈高速发展之态势,让人欢喜让人忧。喜的是网咖出现是我国经济快速发展的产物,是开放社会的一个象征;忧的是一些网咖无序发展,唯利是图,衍生社会公害。网咖发展的“让人欢喜让人忧”表明()。
若α∥β,α={6,3,一2},而|β|=14,求β.
A、Theylosttheirway.B、Theyforgotwhattheyweredoing.C、Theyweresleepy.D、Theyhadmentalmistakes.B该题问“根据本段,为什么人们在疲倦时易于
最新回复
(
0
)