c语言利用顺序表求两个数组的子集
时间: 2023-10-28 20:13:40 浏览: 79
利用顺序表求交集
5星 · 资源好评率100%
以下是利用顺序表求两个数组的子集的C语言代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 顺序表的最大长度
typedef struct {
int data[MAX_SIZE]; // 顺序表的存储空间
int length; // 顺序表的长度
} SeqList;
// 初始化顺序表
void initList(SeqList *list) {
list->length = 0;
}
// 向顺序表中插入元素
void insertList(SeqList *list, int value) {
if (list->length >= MAX_SIZE) {
printf("顺序表已满,无法插入元素\n");
return;
}
list->data[list->length++] = value;
}
// 打印顺序表中的元素
void printList(SeqList *list) {
printf("顺序表中的元素为:");
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
// 求子集
void subset(SeqList *list1, SeqList *list2) {
printf("两个数组的子集为:\n");
for (int i = 0; i < list1->length; i++) {
for (int j = 0; j < list2->length; j++) {
printf("{%d, %d}\n", list1->data[i], list2->data[j]);
}
}
}
int main() {
SeqList list1, list2;
initList(&list1);
initList(&list2);
// 向顺序表中插入元素
insertList(&list1, 1);
insertList(&list1, 2);
insertList(&list1, 3);
insertList(&list2, 4);
insertList(&list2, 5);
insertList(&list2, 6);
// 打印顺序表中的元素
printList(&list1);
printList(&list2);
// 求子集
subset(&list1, &list2);
return 0;
}
```
运行结果:
```
顺序表中的元素为:1 2 3
顺序表中的元素为:4 5 6
两个数组的子集为:
{1, 4}
{1, 5}
{1, 6}
{2, 4}
{2, 5}
{2, 6}
{3, 4}
{3, 5}
{3, 6}
```
阅读全文