#include<iostream>
using namespace std;class int_set
{private:int max_size;      //最大容量int current_size;  //当前大小int *p;            //动态数组public://构造函数int_set(int &arr_size) :max_size(arr_size), current_size(0){this->p = new int[arr_size];}//拷贝构造函数int_set(const int_set &copy){this->max_size = copy.max_size;this->current_size = copy.current_size;this->p = new int[copy.max_size];for (int i = 0; i < this->current_size; i++){this->p[i] = copy.p[i];}}//析构函数~int_set(){delete[]p;}//查找相同元素int search(int &elem){for (int i = 0; i < this->max_size; i++){if (this->p[i] == elem){return 1;}}return 0;}//输入void input(){for (int i = 0; i < this->max_size; i++){cin >> p[i];}this->current_size = this->max_size;}//输出void ouput(){for (int i = 0; i < this->current_size; i++){cout << p[i] << " ";}}//并集 + 排序(A ∪ B = C)int_set* elem_union(int_set *B){int i, j;//动态开辟集合C的内存空间int new_max_size = this->max_size + B->max_size;int_set *C = new int_set(new_max_size);//排序集合A,放入集合C中C->p[0] = this->p[0];for (i = 1; i < this->max_size; i++){for (j = i - 1; this->p[i] < C->p[j] && j >= 0; j--){C->p[j + 1] = C->p[j];}C->p[j + 1] = this->p[i];}//更新C集合的当前大小C->current_size = this->max_size;//排序集合B,放入集合C中for (i = 0; i < B->max_size; i++){if (!C->search(B->p[i])) //查找两个集合是否有相同元素{for (j = C->current_size - 1; B->p[i] < C->p[j] && j >= 0; j--){C->p[j + 1] = C->p[j];}C->p[j + 1] = B->p[i];//更新C集合大小C->current_size++;}}return C;}};int main()
{int m = 0, n = 0;cout << "请输入A集合大小:" << endl;cin >> m;cout << "请输入B集合大小:" << endl;cin >> n;int w = m + n;int_set *A = new int_set(m);int_set *B = new int_set(n);int_set *temp = new int_set(w);cout << "请输入集合A元素:" << endl;A->input();cout << "请输入集合B元素:" << endl;B->input();temp = A->elem_union(B);cout << "集合C元素:" << endl;temp->ouput();system("pause");return 0;
}

c++实现并集(A∪B = C)相关推荐

  1. Redis 笔记(06)— set 类型(向集合添加元素、获取集合元素个数、判断集合中是否包含某个元素、删除给定元素、返回集合中所有元素、计算集合的交集、并集、差集)

    Redis 的 set 集合内部的键值对是无序的唯一的.它的内部实现相当于一个特殊的字典,字典中所有的 value 都是一个值 NULL .当集合中最后一个元素移除之后,数据结构自动删除,内存被回收. ...

  2. 第一个python程序:定义,列表,元组,集合,求并集交集,键和值,运算符,缩进

    ''' 来源:天善智能韦玮老师课堂笔记 ''' print("定义") a = 6 # python里无需定义 print("a=",a) a += 1 # + ...

  3. 打印出两个set中差集_Java之两个Set集合的交集、差集和并集

    一.求交集 注:场景是读取两个文件,把文件内容放到Set中,求两个文件之间的共同元素.在这里只写对Set的操作. public static void main(String[] args) thro ...

  4. javascript ES6有趣的Set,数组去重、并集、交集、差集

    Set 对象存储的值总是唯一的 Set 对象方法 方法 描述 add 添加某个值,返回Set对象本身. clear 删除所有的键/值对,没有返回值. delete 删除某个键,返回true.如果删除失 ...

  5. CSS之复合选择器(交集、并集选择器)

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...

  6. CSS复合选择器(后代选择器、子元素选择器、并集选择器、伪类选择器、:focus伪类选择器)

    复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的. 1. 后代选择器 后代选择器又称为包含选择器 作用:用来选择元素或元素组的子孙后代 其写法就是把外层标签写在前面,内层标签写在后面,中间 ...

  7. [kuangbin带你飞]专题五查并集

    写了几个查并集得题,成功把自己写晕了 之后写下面得题(写不下去了) **poj-2912 poj 文章目录 1.POJ - 1611(模板题) 2.HDU - 1213(模板题) 3.poj2236( ...

  8. 顺序表-有序顺序表表示集合-并集(两者比较,小者放入C,未遍历继续放入)

    顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 这里有序的顺序表,可 ...

  9. 顺序表-顺序表表示集合-并集(A复制到C,B遍历比较C)

    顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 这里是求并集 ,也就 ...

  10. R函数:交集intersect、并集union、找不同setdiff、判断相同setequal

    R语言基础系列: 你知道R中的赋值符号箭头(<-)和等号(=)的区别吗? 1数据类型(向量.数组.矩阵. 列表和数据框) 2读写数据所需的主要函数.与外部环境交互 3数据筛选--提取对象的子集 ...

最新文章

  1. 百度“已死”,百度“真香”
  2. 图卷积神经网络分析复杂碳水化合物
  3. pcl中ransac提取直线_复杂场景中的一个图像配准思路
  4. mysql+视频文件转成流_视频文件自动转rtsp流
  5. linux文件系统命令
  6. CardView的使用
  7. X5045的C语言源码,X5045看门狗的单片机源程序和Proteus仿真原理图
  8. Kubernetes详解(六)——Pod对象部署和应用
  9. vb.net 功能f8键事件_UG软件F8快捷键和笔记本电脑F8快捷键冲突的解决方法
  10. xp系统可用的远程投屏软件_市面上支持WindowsXP系统的无线投屏器是越来越少了?...
  11. status(c语言)
  12. 操作系统----校招笔试面试常考内容总结
  13. 未安装360系列应用情况下,Edge浏览器主页被360篡改,一直显示360导航
  14. 区块链大戏上演!陈伟星VS朱啸虎公开互怼数个回合 | 区块链日报
  15. Python3字符串前缀u、b、r
  16. 3D Human相关研究:人体、姿态估计、人体重建等
  17. Dreaming to Distill: Data-free Knowledge Transfer via DeepInversion
  18. Nvidia AGX Xavier MAX9286 GMSL 载板(绿板)
  19. 如何修复“Windows/System32/Config/System中文件丢失或损坏”故障
  20. Luogu 2495 [SDOI2011]消耗战

热门文章

  1. (转载)Java反射机制
  2. 统计机器学习【3】- K近邻法(三)Ball Tree
  3. 网络爬虫的原理和案例
  4. laravel-admin扩展wang-Editor上传图片设置
  5. Android 11.0 系统去掉多用户功能
  6. Linux下的截图工具 —— Flameshot
  7. 嵌入式截屏工具-gsnap移植 arm平台
  8. 汇川AM402、H3U和上位机C#ModebusTcp通讯
  9. 【程序人生】“阶段总结”-不论过往
  10. 关于LED金线的相关知识