【算法与数据结构实战】线性表操作-实现A并B,结果放入A中
//数据结构与算法基础题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中的更多相关文章
- 算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)
温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结.数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下.当然数据结构相关博客中我们以Swift语言来实现.因为Swift ...
- TOJ 1214: 数据结构练习题――线性表操作
描述 请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素"."获取某个位置的元 ...
- TZOJ 1214: 数据结构练习题――线性表操作
描述 请你定义一个线性表,可以对表进行“在某个位置之前插入一个元素”.“删除某个位置的元素”.“清除所有元素”.“获取某个位置的元素”等操作.键盘输入一些命令,可以执行上述操作.本题中,线性表元素为整 ...
- C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作
1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...
- "《算法导论》之‘线性表’":基于静态分配的数组的顺序表
首先,我们来搞明白几个概念吧(参考自网站数据结构及百度百科). 线性表 线性表是最基本.最简单.也是最常用的一种数据结构.线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外, ...
- ACM——线性表操作
线性表操作 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:2795 测试通过:589 描述 线性表是n个元素 ...
- 用C#学习数据结构之线性表
什么是线性表 线性表是最简单.最基本.最常用的数据结构.线性表是线性结构的抽象(Abstract),线性结构的特点是结构中的数据元素之间存在一对一的线性关系.这种一对一的关系指的是数据元素之间的位置关 ...
- 【Java】 大话数据结构(2) 线性表之单链表
本文根据<大话数据结构>一书,实现了Java版的单链表. 每个结点中只包含一个指针域的链表,称为单链表. 单链表的结构如图所示: 单链表与顺序存储结构的对比: 实现程序: package ...
- 数据结构之线性表(python版)
数据结构之线性表(python版) 单链表 1.1 定义表节点 # 定义表节点 class LNode(): def __init__(self,elem,next = None): self.el ...
随机推荐
- JS中的new操作符原理解析
var Person = function(name){ this.name = name; } Person.prototype.sayHello = function() { console.lo ...
- uva 1636 Headshot
https://vjudge.net/problem/UVA-1636 首先在手枪里随机装一些子弹,然后抠了一枪,发现没有子弹.你希望下一枪也没有子弹,是应该直接再抠一枪(输出SHOOT)呢,还是随机 ...
- 转【非容器化Jenkins连接Kubernetes】
一.环境说明 OS系统版本:Ubuntu 18.04 TLS 软件版本:Jenkins 2.121.2 Kubernetes plugin 1.10.2 ...
- 利用PhantomJS生成网站截图
var page = require('webpage').create(); page.open('http://qq.com', function () { page.render('exampl ...
- 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)
考虑一下,如何在网页中达到类似以下文字渐变的效果? 传统的实现中,是用一副透明渐变的图片覆盖在文字上.具体实现方式可参考 http://www.qianduan.net/css-gradient-te ...
- .NET中的异常和异常处理
.NET中的异常(Exception) .net中的中异常的父类是Exception,大多数异常一般继承自Exception. 可以通过编写一个继承自Exception的类的方式,自定义异常类! 异常 ...
- 在Unity中实现屏幕空间反射Screen Space Reflection(2)
traceRay函数 在上一篇中,我们有如下签名的traceRay函数 bool traceRay(float3 start, float3 direction, out float2 hitPixe ...
- stanfordCorenlp在python3中的安装使用+词性学习
1 安装 前言 Stanford CoreNLP的源代码是使用Java写的,提供了Server方式进行交互.stanfordcorenlp是一个对Stanford CoreNLP进行了封装的Pytho ...
- SpringMVC可以配置多个拦截后缀*.action和.do等
首先介绍一下.do和.action的区别: struts早期的1版本,以.do为后缀. 同时spring的MVC也是以.do为后缀. 几年前struts收购鼎鼎大名的webwork2和开发团队后,将w ...
- Perl6多线程1 Thread : new / run
先看一个小例子: ) { #默认参数 say $name; } sub B(:name($name)) { #默认参数为 any say $name; } A(); A(); B(); B(name ...