首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
已知3个带头结点的线性链表A、B、C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O
admin
2019-01-16
47
问题
已知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剩余元素 } } } }
解析
转载请注明原文地址:https://kaotiyun.com/show/WeRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
美国的垄断组织主要采取的形式是()。
简述梭伦改革的主要内容和历史意义。
简要分析英、法20世纪30年代绥靖法西斯国家的表现及影响。
简述路德“唯信称义”与加尔文“预定论”的关系与区别。
古巴革命党是由古巴民族英雄、民族解放运动的领袖()于1892年在美国纽约建立的。
全国高校院系调整的具体时间是()。
第一次国共合作采取了共产党员以个人身份加入国民党的“党内合作”方式,最早提出这种方式的是()。
在明朝中叶,农业生产发生了一件非常重要的事件——(),对于当时的食物结构产生了重大的影响
既考虑作业等待时间又考虑作业执行时间的调度算法是()。
设有两个子网202.118.133.0/24和202.118.130.0/24,如果进行路由汇聚,得到的网络地址是()。
随机试题
[*]
Mostpeoplehavenoideaofthehardworkandworrythatgoesintothecollectingofthosefascinatingbirdsandanimalsthatth
导致血清总蛋白增高的原因为
赵某,女,40岁。干咳1年,未认真治疗,近因参加劳动,咳嗽加剧,并咯血数口,现痰中带血丝,心烦,自感手足心热,睡时常出汗,小便少,大便干,舌红苔少而干,脉细数。拟诊
甲公司欠乙公司货款20万元已有10个月,其资产已不足偿债。乙公司在追债过程中发现,甲公司在一年半之前作为保证人向某银行清偿了丙公司的贷款后一直没有向其追偿,同时还将自己对丁公司享有的30%的股权无偿转让给了丙公司。下列哪些选项是错误的?()。
下列有关价值观和伦理的表述中,正确的是( )。
【2017下】青年教师小王刚入职就加入冯老师主持的名师工作室,积极参与各种教研活动,很快适应了岗位工作。这表明王老师在专业发展上注重()。
HaveChineseaudiencesonaveragespentmoretimewatchingentertainmentcontentonlineinthisuncommonyearwhenthebattleag
白领:时尚:文化
AsIdidn’tdomuchofthework,itis______formetogettheminorshare.
最新回复
(
0
)