c语言线性表求差集,差集运算(线性表)
时间: 2023-11-08 21:05:42 浏览: 50
差集运算可以理解为从一个线性表中删除另一个线性表中出现的元素,得到的新的线性表。
下面是一个使用C语言实现线性表差集运算的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 线性表最大长度
typedef struct {
int data[MAXSIZE]; // 存储元素的数组
int length; // 线性表长度
} List;
// 初始化线性表
void InitList(List *L) {
L->length = 0;
}
// 向线性表中添加元素
void AddElement(List *L, int e) {
if (L->length >= MAXSIZE) {
printf("List is full.\n");
exit(1);
}
L->data[L->length++] = e;
}
// 删除线性表中的元素
void DeleteElement(List *L, int e) {
int i, j;
for (i = 0, j = 0; i < L->length; i++) {
if (L->data[i] != e) {
L->data[j++] = L->data[i];
}
}
L->length = j;
}
// 求差集运算
void Difference(List *L1, List *L2, List *L3) {
int i, j;
InitList(L3);
for (i = 0; i < L1->length; i++) {
for (j = 0; j < L2->length; j++) {
if (L1->data[i] == L2->data[j]) {
break;
}
}
if (j >= L2->length) {
AddElement(L3, L1->data[i]);
}
}
}
int main() {
List L1, L2, L3;
int i;
// 初始化线性表L1
InitList(&L1);
for (i = 1; i <= 5; i++) {
AddElement(&L1, i);
}
// 初始化线性表L2
InitList(&L2);
for (i = 3; i <= 7; i++) {
AddElement(&L2, i);
}
// 求L1和L2的差集
Difference(&L1, &L2, &L3);
// 输出结果
printf("L1: ");
for (i = 0; i < L1.length; i++) {
printf("%d ", L1.data[i]);
}
printf("\nL2: ");
for (i = 0; i < L2.length; i++) {
printf("%d ", L2.data[i]);
}
printf("\nL1 - L2: ");
for (i = 0; i < L3.length; i++) {
printf("%d ", L3.data[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个结构体`List`表示线性表,包含一个存储元素的数组和线性表的长度。使用`InitList`函数初始化线性表,使用`AddElement`函数向线性表中添加元素,使用`DeleteElement`函数从线性表中删除元素。使用`Difference`函数求差集运算,其中第一个参数`L1`表示被减数,第二个参数`L2`表示减数,第三个参数`L3`表示差集结果。差集运算的实现过程是,遍历`L1`中的每个元素,判断其是否在`L2`中出现过,如果没有出现过,则将其添加到`L3`中。最后,使用`printf`函数输出结果。
相关推荐
![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)