用C++写:将两个设顺序表va中的元素递增有序的有序链表合并为一个设顺序表va中的元素递增有序的有序链表。要求结果链表仍使用原来两个链表的存储空间

标签(空格分隔): 学习笔记 数據结构


将两个递增的有序链表合并为一个递增的有序链表要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据


 
原来的思路是在循环里判断链表是否遍历结束,结果写了好多用于判断的if语句,用了好长时间,代码冗长,後来网上搜索了别人的代码,是把遍历完成作为跳出循环的条件,然后判断是哪个链表循环完了,就把另一个链表剩下的结点接到尾部.因为这两個链表是递增的,剩下的就不用排序了.

这里不需要加r = p;这个工作将会在不相等的时候做,即不等时r值变(移动)
原来判断是否遍历完成犯了一个低级錯误,以后记住
NULL(常量)一定要写左边

  • 新建链表依次分离原鏈表结点插入到新链表上
  • 依然使用其中一个原链表,将另一个链表中的结点依次插入

要求:结果链表仍使用原来两个鏈表的存储空间不另外占用其他的存储空间。表中不允许有重复数据... 要求:结果链表仍使用原来两个链表的存储空间,不另外占用其怹的存储空间表中不允许有重复数据。

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

//合并链表La和Lb,合并后的新表使用头指针Lc指向

//pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点

//取较小者La中的元素将pa链接在pc的后面,pa指針后移

//取较小者Lb中的元素将pb链接在pc的后面,pb指针后移

else //相等时取La中的元素删除Lb中的元素



我要回帖

更多关于 设顺序表va中的元素递增有序 的文章

 

随机推荐