两个排序后的表L1和L2的交和并
来源:互联网 发布:java封装继承多态详解 编辑:程序博客网 时间:2024/06/05 13:33
问题:给定两个排序后的表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的交和并
- 仅使用基本的表操作实现两个排序后的表L1和L2的并集
- 给定两个排序后的链表L1\L2,仅用基本表操作求链表的交集和并集
- 给定两个已排序的表L1和L2 只使用基本的表操作编写计算L1∪L2的过程 并集
- 数据结构与算法分析 c++11 练习3.4 3.5 给定两个已排序的表L1和L2,求交集和并集
- 给定两个已排序的表L1和L2 只使用基本的表操作编写计算L1∩L2的过程 交集
- sklearn 的 Normalizer的L1和 L2
- 关于L1和L2的一些思考
- L1范数和L2范数的区别
- python 线性表L1和L2求并集
- L1和L2的区别和各自的优势
- L1归一化和L2归一化范数的详解和区别
- l1和l2正则
- L1 和 L2 缓存
- 矩形的并和交
- 范数、L1范数和L2范数的基本概念
- 关于L0,L1和L2范数的规则化
- L0,L1,L2范式的区别和应用
- 在Rails外单独使用ActiveRecord
- 打印几个特定字符的ASCII码
- UVA 563 - Crimewave(最大流)
- 选择不相交区间
- linux下的格式问题,与读取不了最后一行
- 两个排序后的表L1和L2的交和并
- phttp dynamic.xml
- 使用命令行启动服务
- 《深入理解计算机系统》第八章 (四)信号
- 同时编译多个版本的脚本写法
- 20131203实验室工作小结——matcom的安装与简单使用
- ubuntu-CPU频率调节
- 顺序结构
- C++/C 常量