两个排序后的表L1和L2的交和并

原创 2013年12月03日 19:47:30

问题:给定两个排序后的表L1和L2,写程序仅用基本的表操作来实现L1∩L2和L1∪L2。

思路:本题的前提的是表有序,可以简化对表中元素的遍历操作。

代码:

L2和L2的交操作:

template<typename Object>
list <Object> intersection (const list<Object> &L1,const list<Object> &L2){
list <Object> intersect;
typename list <Object>::const_iterator iter1=L1.begin();
typename list <Object>::const_iterator iter2=L2.begin();
//元素的遍历比较
while(iter1!=L1.end&&iter1!=L2.end()){
if(*iter1== *iter2){
intersect.push_back(*iter1);
iter1++;
iter2++;
}
else if(*iter< *iter2){
iter1++;
}
else iter2++;
}
return intersect;
}

L1和L2的并操作
template <typename Object>
list<Object> listunion(const list<Object> &L1,const list<Object> &L2){
list <Object> listun;
typename list <Object>::const_iterator iter1=L1.begin();
typename list <Object>::const_iterator iter2=L2.begin();
while(iter1!=L1.end()&&iter2!=L2.end()){//元素的遍历比较
if(*iter1== *iter2){
listun.push_back(*iter1);
iter1++;
iter2++;
}
else if(*iter1<*iter2){
listun.push_back(*iter1);
iter1++;
}
else {
listun.push_back(*iter2);
iter2++;
}
}
return listun;
}

相关文章推荐

仅使用基本的表操作实现两个排序后的表L1和L2的并集

针对Weiss著的《数据结构与算法分析(C++描述+第三版)习题答案中的3.5题的分析 原题:给定两个排序后的表L1和L2,。写出一个程序仅使用基本的表操作来计算L1UL2。 习题答案中的程序如下...

有一个带头结点的单链表L={a1,b1,a2,b2,...,an,bn},设计一个算法将其拆分成两个带头结点的单链表A和B,正序链表A={a1,a2,a3...,an},逆序链表B={bn,bn-1,

有一个带头结点的单链表L={a1,b1,a2,b2,...,an,bn},设计一个算法将其拆分成两个带头结点的单链表A和B,正序链表A={a1,a2,a3...,an},逆序链表B={bn,bn-1,...

UESTC 2016 Summer Training #1 Div.2 L - Plus or Minus (A) dfs

dfs就好, 好久没用写dfs了,简单dfs还是Debug了好长时间, 尴尬⊙﹏⊙‖∣ 记得把那些转移的东西写在参数里 读入char类型, 记得看看要不要用getchar吸掉换行空格什么的...

1.v4l2 framework框架

V4L2 API Specification

基于V4L2的视频驱动开发笔记(1)

基于V4L2的视频驱动开发(1)     --- jack_a8 编写基于V4L2视频驱动主要涉及到以下几个知识点:     ●    摄像头方面的知识           ...

【Codeforces Round 328 (Div 2)C】【lcm 讨论题】The Big Race [1,l]长度距离比赛的平局概率

#include #include #include #include #include #include #include #include #include #include #include #...

PAT 天梯初赛 L2_1抢红包

抢红包 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Stand...
  • Puyar_
  • Puyar_
  • 2016年06月06日 21:01
  • 807

linux应用项目(二)摄像头(1)V4L2框架分析

1、回顾字符设备驱动程序基本框架 1.1、简单的字符设备驱动程序 (1)file_operations (2)register_chrdev(major,name,file_operations) (...

L2-1. 紧急救援(dijkstra单源最短路径拓展应用)

L2-1. 紧急救援时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 作为一个城市的应急救援队伍的负责人,你有...

L1-2. 点赞(多组数据中判断出现次数最多的数)

题目L1-2. 点赞  微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:两个排序后的表L1和L2的交和并
举报原因:
原因补充:

(最多只允许输入30个字)