求并集————————————————————————————

#include <iostream>
#include "./List.h"//利用我们自己实现的单链表List
using namespace std;void PrintList(List L)
{if(NULL == L) return;Position pos = First(L);cout<<"List L:";while(NULL != pos){cout<<Retrieve(pos)<<"->";pos = pos->next;}cout<<"NULL"<<endl;;
}
List UnionOfTwoLists(List list1, List list2)
{if(NULL == list1  && NULL == list2) return NULL;Position p1 = First(list1), p2 = First(list2);List out = CreateEmptyList();while(NULL != p1 && NULL != p2){if(Retrieve(p1) <= Retrieve(p2)){PushBack(Retrieve(p1), out);p1 = p1->next;}else{PushBack(Retrieve(p2), out);p2 = p2->next;}}if(NULL == p1){while(NULL != p2){PushBack(Retrieve(p2), out);p2 = p2->next;}}else if(NULL == p2){while(NULL != p1){PushBack(Retrieve(p1), out);p1 = p1->next;}}return out;
}
int main(int argc, char const *argv[])
{List list1 = CreateEmptyList();List list2 = CreateEmptyList();for (int i = 0; i < 10; ++i)PushBack(i, list1);for (int i = 0; i < 20; i += 2)PushBack(i, list2);PrintList(list1);PrintList(list2);List res = UnionOfTwoLists(list1, list2);PrintList(res);return 0;
}

  

求交集——————————————————————————————
#include <iostream>
#include "./List.h"//利用我们自己实现的单链表List
using namespace std;void PrintList(List L)
{if(NULL == L) cout<<"Error List L is NULL!!!"<<endl;Position pos = First(L);cout<<"List L:";while(NULL != pos){cout<<Retrieve(pos)<<"->";pos = pos->next;}cout<<"NULL"<<endl;;
}
List IntersectionOfTwoLists(List list1, List list2)
{if(NULL == list1  && NULL == list2) return NULL;Position p1 = First(list1);List out = CreateEmptyList();while(NULL != p1){Position tmp = Find(Retrieve(p1), list2);if(NULL != tmp)PushBack(Retrieve(tmp), out);p1 = p1->next;}return out;
}
int main(int argc, char const *argv[])
{List list1 = CreateEmptyList();List list2 = CreateEmptyList();for (int i = 0; i < 20; ++i)PushBack(i, list1);for (int i = 0; i < 20; i += 2)PushBack(i, list2);PrintList(list1);PrintList(list2);List res = IntersectionOfTwoLists(list1, list2);PrintList(res);return 0;
}

转载于:https://www.cnblogs.com/zxh1210603696/p/3194608.html

求两个有序单链表的并交集相关推荐

  1. 两个有序单链表的并交差运算

    /*实验2.6:求集合(有序单链表表示)的并.交和差运算*/ #include<iostream> #include<malloc.h> using namespace std ...

  2. 两个有序单链表的合并排序算法

    设计两个有序单链表的合并排序算法 ListList MergeList(LiskList La, LinkList Lb){Lnode *pa = La->next;Lnode *pb = Lb ...

  3. 链表题目---3 合并两个有序单链表 和 分割链表

    合并两个有序单链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *nex ...

  4. 合并两个有序单链表,使得合并后的链表仍然有序

    在<剑指offer>里有一道笔试面试题:合并两个有序单链表,使得合并后的链表仍然有序.书中巧妙的利用了递归方法实现了该函数功能. 显然,利用递归算法能够让代码看起来非常简洁且容易看懂,但如 ...

  5. C++头插法尾插法建立单链表,合并两个有序单链表

    A和B是两个单链表(带表头结点),其中元素递增有序.设计一个算法,将A和B归 并成一个按元素值非递减有序的链表 C,C由A 和B 中的结点组成. #include<iostream> #i ...

  6. 经典算法——合并两个有序单向链表

    1.题目要求 这是一道求职面试时经常要求手写或者机试的经典题目. 已知两个链表 head1 和 head2 各自有序,请把它们合并成一个链表依然有序.结果链表要包含 head1 和head2 的所有节 ...

  7. 两个无序单链表,排序后合并成一个有序链表

    两个无序单链表,排序后合并成一个有序链表 算法思想:用冒泡法,对链表1和2进行排序,对排序后的两个链表,从小到大进行循环,装入链表3中. #include<stdio.h> #includ ...

  8. 两个非递减有序单链表La和Lb合并成一个非递增有序链表Lc

    #include<iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  9. LeetCode Merge k Sorted Lists(有序单链表数组的合并)

    题意:给出一个有序单链表数组,将其合并成一个有序单链表 思路:将其转化成两个单链表合并的问题,用递归方式来实现 代码如下: public class Solution {private ListNod ...

  10. 求两个有序数组的中位数或者第k小元素

    问题:两个已经排好序的数组,找出两个数组合并后的中位数(如果两个数组的元素数目是偶数,返回上中位数). 设两个数组分别是vec1和vec2,元素数目分别是n1.n2. 算法1:最简单的办法就是把两个数 ...

最新文章

  1. WPF中触发器Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种
  2. 用于阴影检测的 DSC 特征
  3. 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17
  4. 循环-20. 猜数字游戏(15)
  5. JDK6 中队web service的支持
  6. python中int用法,Python中int()函数的用法浅析
  7. 数列求和 java_[代码展示]数列求和
  8. Web安全之点击劫持
  9. 已处理证书链,但是在不受信任提供程序信任的根证书中终止 - Windows 7安装.Net Framework 4.7.2时出现此问题
  10. opera mini 7.5安卓改服版
  11. spring-speed-up.xml
  12. 富士康计算机主板官网,富士康主板官网?富士康主板刷bios工具?foxconn主板官网?富士康主板怎么样...
  13. java完全自学手册pdf,附答案+考点
  14. Android studio emulator Terminated
  15. 女友让我走上家具电商年入亿万之路
  16. [今日名人回顾]计算机之父—冯·诺依曼
  17. linux centos 中的挂载是什么意思介绍和解释介绍及如何挂载
  18. 力天创见商场客流统计方案
  19. 劳动法 第四章 工作时间和休息休假
  20. 3.2 回溯法—N皇后问题

热门文章

  1. poj2406(kmp循环节)
  2. Winform的html编辑控件htmleditor 有时候无法为里面HTML属性初始化
  3. java web中的监听器
  4. TP-Link TD-W89841N 增强型无线路由器快速设置指南
  5. MS SQL Server 游标及实例(四)
  6. 悟透LoadRunner - 调用外部DLL的点点滴滴
  7. HolderView vs ViewHolder实例
  8. vuex的基础小案例(黑马教程)
  9. ln 创建软链接硬链接命令
  10. java aspose例子_在Java中使用Aspose对文档操作示例