//数据结构与算法基础题1:线性表操作,实现A并B,结果放入A中

#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#pragma warning(disable:4996) using namespace std; int main()
{
vector<int> set_A, set_B;
int num_of_elements_in_A, num_of_elements_in_B;
//下面输入集合A和B的元素
//从输入方便的角度考虑,没有进行去重,只在最后合并的时候进行了去重
cout << "请输入集合A的元素个数:";
cin >> num_of_elements_in_A;
if (num_of_elements_in_A <= 0) {
cout << "元素个数不可以小于0!" << endl;
return 1;
}
cout << "集合A元素个数为:" << num_of_elements_in_A << endl;
for (int i = 0; i < num_of_elements_in_A; i++) {
int temp = 0;
cout << "请输入集合A的第" << i + 1 << "个元素:";
cin >> temp;
set_A.push_back(temp);
}
cout << "请输入集合B的元素个数:";
cin >> num_of_elements_in_B;
if (num_of_elements_in_B <= 0) {
cout << "元素个数不可以小于0!" << endl;
return 1;
}
cout << "集合B元素个数为:" << num_of_elements_in_B << endl;
for (int i = 0; i < num_of_elements_in_B; i++) {
int temp = 0;
cout << "请输入集合B的第" << i + 1 << "个元素:";
cin >> temp;
set_B.push_back(temp);
}
//把B的元素先全部插入A中
vector<int>::iterator iter_B = set_B.begin();
while (iter_B != set_B.end())
{
set_A.push_back(*iter_B);
iter_B++;
} sort(set_A.begin(), set_A.end());
set_A.erase(unique(set_A.begin(), set_A.end()), set_A.end());
vector<int>::iterator iter_A = set_A.begin();
cout << "合并后A中的实际元素为:";
while (iter_A != set_A.end())
{
cout << *iter_A << " ";
iter_A++;
} cout << endl;
system("pause");
return 0;
}

注意,中间erase里的unique使用,得要先对vector进行排序,否则不会进行所有的去重(即只对相邻的重复进行去重)

进一步体会了STL的使用对于基本算法和数据结构实现的方便性。

【算法与数据结构实战】线性表操作-实现A并B,结果放入A中的更多相关文章

  1. 算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)

    温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结.数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下.当然数据结构相关博客中我们以Swift语言来实现.因为Swift ...

  2. TOJ 1214: 数据结构练习题――线性表操作

    描述 请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素"."获取某个位置的元 ...

  3. TZOJ 1214: 数据结构练习题――线性表操作

    描述 请你定义一个线性表,可以对表进行“在某个位置之前插入一个元素”.“删除某个位置的元素”.“清除所有元素”.“获取某个位置的元素”等操作.键盘输入一些命令,可以执行上述操作.本题中,线性表元素为整 ...

  4. C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作

    1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...

  5. "《算法导论》之‘线性表’":基于静态分配的数组的顺序表

    首先,我们来搞明白几个概念吧(参考自网站数据结构及百度百科). 线性表 线性表是最基本.最简单.也是最常用的一种数据结构.线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外, ...

  6. ACM——线性表操作

    线性表操作 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:2795            测试通过:589 描述 线性表是n个元素 ...

  7. 用C#学习数据结构之线性表

    什么是线性表 线性表是最简单.最基本.最常用的数据结构.线性表是线性结构的抽象(Abstract),线性结构的特点是结构中的数据元素之间存在一对一的线性关系.这种一对一的关系指的是数据元素之间的位置关 ...

  8. 【Java】 大话数据结构(2) 线性表之单链表

    本文根据<大话数据结构>一书,实现了Java版的单链表. 每个结点中只包含一个指针域的链表,称为单链表. 单链表的结构如图所示: 单链表与顺序存储结构的对比: 实现程序: package ...

  9. 数据结构之线性表(python版)

    数据结构之线性表(python版) 单链表 1.1  定义表节点 # 定义表节点 class LNode(): def __init__(self,elem,next = None): self.el ...

随机推荐

  1. JSTL获取当日时间与数据时间比较

    <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value=& ...

  2. 将new Date() 格式化为 ’2018-10-11‘ 的字符串格式

    function dateToString( date , format ){ if(!date) return ""; if (!Common.type.isDate(date) ...

  3. HDU 3926 并查集 图同构简单判断 STL

    给出两个图,问你是不是同构的... 直接通过并查集建图,暴力用SET判断下子节点个数就行了. /** @Date : 2017-09-22 16:13:42 * @FileName: HDU 3926 ...

  4. matlab核函数与滑窗

    在处理图像时,为了提取特征,经常用各种核函数和图像进行卷积,其实就是通过一个矩阵以滑窗的形式与原图像进行点乘求和,可以看作对一个像素和附近像素进行了加权平均. 比如经常用3x3的近似高斯卷积核 0 1 ...

  5. sql统计字符串出现次数技巧

    在牛客网上看到一道题,感觉挺有趣,是用sql统计字符串出现的次数. 这里提供一种思路,比如统计字符串A中子串B的出现次数: SELECT (LENGTH(A) - LENGTH(REPLACE(A, ...

  6. You can fail at what you don't want, so you might as well take a chance on doing what you love.

    You can fail at what you don't want, so you might as well take a chance on doing what you love. 做不想做 ...

  7. makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解【转】

    转自:http://www.cnblogs.com/lifexy/p/7065175.html 在linux中输入vi Makefile 来实现创建Makefile文件 注意:命令行前必须加TAB键 ...

  8. 【bzoj4293】【PA2015】Siano

    如题,首先可以考虑相对大小是不变的. 那么先sort,之后每次在线段树上二分即可. #include<bits/stdc++.h> typedef long long ll; using ...

  9. javascript 之数据类型--01

    写在前面 国庆整理资料时,发现刚开始入门前端时学习JS 的资料,打算以一个基础入门博客记录下来,有不写不对的多多指教: 先推荐些书籍给需要的童鞋 <JavaScript 高级程序设计.pdf&g ...

  10. php判断是手机还是pc访问从而走不同url

    <?php header("Content-type:text/html;charset=utf-8"); function is_mobile(){ $user_agent ...