用C语言线性表知识写一个求集合交集和并集的代码
时间: 2024-05-22 18:16:17 浏览: 10
#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;
}
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)