写一个求集合交集和并集的代码
时间: 2024-05-04 18:15:10 浏览: 153
假设有两个集合 A 和 B,可以用 Python 语言求它们的交集和并集。
求交集的代码如下:
```python
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
intersection = A & B # 使用 & 运算符求交集
print("A 和 B 的交集为:", intersection)
```
输出结果为:
```
A 和 B 的交集为: {3, 4}
```
求并集的代码如下:
```python
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
union = A | B # 使用 | 运算符求并集
print("A 和 B 的并集为:", union)
```
输出结果为:
```
A 和 B 的并集为: {1, 2, 3, 4, 5, 6}
```
相关问题
用C语言写一个求集合交集和并集的代码
```c
#include <stdio.h>
int main() {
int set1[100], set2[100], intersection[100], unionset[200];
int n1, n2, i, j, k, unionlen = 0, intersectionlen = 0;
printf("请输入第一个集合的元素个数:");
scanf("%d", &n1);
printf("请输入第一个集合的元素:");
for (i = 0; i < n1; i++) {
scanf("%d", &set1[i]);
unionset[unionlen++] = set1[i];
}
printf("请输入第二个集合的元素个数:");
scanf("%d", &n2);
printf("请输入第二个集合的元素:");
for (i = 0; i < n2; i++) {
scanf("%d", &set2[i]);
unionset[unionlen++] = set2[i];
}
// 求并集
for (i = 0; i < unionlen; i++) {
for (j = 0; j < i; j++) {
if (unionset[i] == unionset[j]) {
break;
}
}
if (j == i) {
// 没有重复的元素
printf("%d ", unionset[i]);
}
}
printf("是两个集合的并集\n");
// 求交集
for (i = 0; i < n1; i++) {
for (j = 0; j < n2; j++) {
if (set1[i] == set2[j]) {
intersection[intersectionlen++] = set1[i];
break;
}
}
}
printf("两个集合的交集为:");
for (i = 0; i < intersectionlen; i++) {
printf("%d ", intersection[i]);
}
printf("\n");
return 0;
}
```
用C语言线性表知识写一个求集合交集和并集的代码
#include <stdio.h>
#define MAXSIZE 100 // 定义线性表的最大长度
typedef struct {
int data[MAXSIZE]; // 线性表的存储空间
int length; // 线性表的长度
} List;
// 初始化线性表
void initList(List *list) {
list->length = 0;
}
// 向线性表中插入元素
void insert(List *list, int data) {
if (list->length >= MAXSIZE) {
printf("线性表已满\n");
return;
}
list->data[list->length++] = data;
}
// 求集合交集
List intersect(List list1, List list2) {
List result;
initList(&result);
int i, j;
for (i = 0; i < list1.length; i++) {
for (j = 0; j < list2.length; j++) {
if (list1.data[i] == list2.data[j]) {
insert(&result, list1.data[i]);
break;
}
}
}
return result;
}
// 求集合并集
List unionSet(List list1, List list2) {
List result;
initList(&result);
int i, j;
for (i = 0; i < list1.length; i++) {
insert(&result, list1.data[i]);
}
for (j = 0; j < list2.length; j++) {
for (i = 0; i < result.length; i++) {
if (list2.data[j] == result.data[i]) {
break;
}
}
if (i == result.length) {
insert(&result, list2.data[j]);
}
}
return result;
}
int main() {
List list1, list2;
initList(&list1);
initList(&list2);
// 向线性表1中插入元素
insert(&list1, 1);
insert(&list1, 2);
insert(&list1, 3);
insert(&list1, 4);
// 向线性表2中插入元素
insert(&list2, 3);
insert(&list2, 4);
insert(&list2, 5);
insert(&list2, 6);
// 求集合交集
List result1 = intersect(list1, list2);
printf("集合交集为:\n");
for (int i = 0; i < result1.length; i++) {
printf("%d ", result1.data[i]);
}
printf("\n");
// 求集合并集
List result2 = unionSet(list1, list2);
printf("集合并集为:\n");
for (int i = 0; i < result2.length; i++) {
printf("%d ", result2.data[i]);
}
printf("\n");
return 0;
}
阅读全文