用c语言,通过链表,存储用键盘输入的集合A和B,并在输入完时检查是否有重复元素
时间: 2024-09-21 20:03:26 浏览: 58
在C语言中,使用链表存储集合A和B,并检查重复元素,可以按照以下步骤进行:
1. 定义链表节点结构:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建一个新的节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL;
return newNode;
}
// 检查并插入新元素,避免重复
Node* insertUnique(Node** head, int value) {
if (*head == NULL || (*head)->data != value) {
Node* newNode = createNode(value);
newNode->next = *head;
*head = newNode;
} else {
printf("重复元素 %d 已存在,忽略。\n", value);
}
return *head;
}
// 输入集合的主函数
void inputAndInsertSets(Node** setA, Node** setB) {
Node* tempA = NULL, *tempB = NULL;
// 读取集合A
printf("请输入集合A的元素,输入负数结束输入:\n");
while (scanf("%d", &tempA->data) && tempA->data != -1) {
tempA = insertUnique(setA, tempA->data);
}
// 读取集合B
printf("\n请输入集合B的元素,输入负数结束输入:\n");
while (scanf("%d", &tempB->data) && tempB->data != -1) {
tempB = insertUnique(setB, tempB->data);
}
}
```
在这个例子中,我们创建了两个指针 `tempA` 和 `tempB` 分别指向集合A和B的链表头部。`insertUnique` 函数会检查新插入的元素是否已经在链表中,并进行相应的操作。在主函数中,我们循环读取用户输入的整数,直到用户输入负数作为停止标志。
注意,这只是一个基础的实现,如果你需要支持更多的交互或者持久化存储,可能需要扩展代码来处理这些情况。同时,如果链表过长,频繁的插入和查找可能会导致性能问题,此时考虑其他数据结构如平衡二叉搜索树(如AVL树或红黑树)可能会更合适。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.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)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)