/**
* 通过数组操作集合,实现并,交,差
* @author BreAthe
*
*/
class SetOperator {
/**
* 实现数组集合setOne,setTwo的交运算
* @param setOne
* @param setTwo
*/
public void intersection(int[] setOne, int[] setTwo) {
for(int i = 0; i < setTwo.length; i++) {//逐个考察setTwo中的元素
for(int j = 0; j < setOne.length; j++) {
if(setOne[j] == setTwo[i]) {
System.out.print(setOne[j] + " ");
break;
}
}
}
}
/**
* 实现数组集合setOne,setTwo的差运算
* setOne - setTwo
* @param setOne
* @param setTwo
*/
public void difference(int[] setOne, int[] setTwo) {
for(int i = 0; i < setTwo.length; i++) {
boolean flag = false;
for(int j = 0; j < setOne.length; j++) {
if(setOne[j] == setTwo[i]) {
flag = true;
break;
}
}
if(!flag) {
System.out.print(setTwo[i] + " ");
}
}
}
/**
* 实现数组集合setOne,setTwo的并运算
* @param setOne
* @param setTwo
*/
public void union(int[] setOne, int[] setTwo) {
for(int i = 0; i < setOne.length; i++) {
System.out.print(setOne[i] + " ");
}
for(int i = 0; i < setTwo.length; i++) {//逐个考察setTwo中的元素
boolean flag = false;
for(int j = 0; j < setOne.length; j++) {
if(setTwo[i] == setOne[j]) {
flag = true;
break;
}
}
if(!flag) {
System.out.print(setTwo[i] + " ");
}
}
}
public void prset(int[] set) {
for(int i = 0; i < set.length; i++) {
System.out.print(set[i] + " ");
}
System.out.println();
}
public class SetOperatorTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] one = {2, 5, 7, 8, 10, 12, 15, 17, 20};
int[] two = {3, 5, 7, 9, 13};
SetOperator so = new SetOperator();
System.out.println("集合1为:");
so.prset(one);
System.out.println("集合2为:");
so.prset(two);
System.out.println("两个集合的并为:");
so.union(one, two);
System.out.println("\n两个集合的交为:");
so.intersection(one, two);
System.out.println("\n集合1和集合2的差为:");
so.difference(one, two);
}
}
分享到:
相关推荐
c++特别影印版第十章课后习题9 用数组实现集合哦,涵盖了交集,并集,差集等等
利用数组实现集合的交、并、和差集,该代码在codeblocks、VS2012通过编译
功能:能演示执行集合的并交差运算 通过有序链表来实现此次运算
实现交、并、差运算时,分别把代码写成函数的形式,即实现交运算的函数,实现并运算的函数,实现差运算的函数,在主函数中分别调用三个函数。 使用菜单形式对应各个操作,应允许用户反复查看结果,想结束程序时,...
【实验内容】编程实现集合的交、并、差和补运算。 【实验原理和方法】 (1)用数组A,B,C,E表示集合。输入数组A,B,E(全集),输入数据时要求检查数据是否重复(集合中的数据要求不重复),要求集合A,B是集合E...
集合类的菜单界面,用数组实现集合的交、并等操作,只是整数集合
•定义函数时,函数的结果应该返回给调用者,交由调用者处理。 函数的应用 两个明确 •明确要定义的功能最后的结果是什么? •明确在定义该功能的过程中,是否需要未知内容参与运算 示例: •需求...
1.【题目】建一个类Set,重载运算符*,实现集合(用数组表示)的交(∩)运算。集合中的元素不能相同。两个集合的交仅包含两个集合中共同存在的。 2.【题目】建立一个类Matrix实现对M行,N列矩阵的加法运算。 3....
集合的运算:交、并、补、差和判断一个元素是否属于某一集合。 并查集:集合的合并、判断一个元素是否属于某一集合的操作。 并查集问题中集合如何存储 可以用树结构表示集合,每棵树代表一个集合,树的每个节点一个...
23.20 集合求交set_ intersection 396 23.21 集合求差set_difference 398 23.22 集合求异set_symmetric_difference 399 23.23 最小值min 401 23.24 最大值max 402 23.25 最小元素min_element 403 23.26...
1. 数组 1.1 从有序数组中删除重复元素 1.2 在排序数组被旋转后进行查找 1.3 寻找两个排序数组的中位数 1.4 最长连续序列 1.5 累加和 1.6 移除数组中指定值 1.7 下一个排列 1.8 第n个全排列 1.9 验证数独的正确性 ...
线段树+树状数组+并查集,转化为排队问题 离散化 离散化矩形切割,矩形覆盖面积统计 覆盖矩形周长统计 离散化矩形切割 灯光投影 搜索 导弹 Bfs+hash状态的抽象,模关系 Bfs变形,钥匙与门 双向广搜 迭代加深 ...
② 退栈运算:取出栈顶元素并赋给一个指定的变量; ③ 读栈顶元素:将栈顶元素赋给一个指定的变量。 1.4 队列 1. 队列的基本概念 队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端...
4.1.5 将使用数组和不安全集合的代码转换为使用并发集合的代码 4.1.6 ConcurrentBag 4.1.7 IProducerConsumerCollection 4.1.8 BlockingCollection 4.1.9 ConcurrentDictionary 4.2 小结 第5章 协调数据结构 5.1 ...
4.1.5 将使用数组和不安全集合的代码转换为使用并发集合的代码 4.1.6 ConcurrentBag 4.1.7 IProducerConsumerCollection 4.1.8 BlockingCollection 4.1.9 ConcurrentDictionary 4.2 小结 第5章 协调数据结构 ...
4.1.5 将使用数组和不安全集合的代码转换为使用并发集合的代码 4.1.6 ConcurrentBag 4.1.7 IProducerConsumerCollection 4.1.8 BlockingCollection 4.1.9 ConcurrentDictionary 4.2 小结 第5章 协调数据结构 ...