(C语言)链表的实现集合的相关操作

这篇博客探讨了如何使用C语言实现集合的常见操作,包括确定性、互异性、无序性的特点。主要内容包括查找元素、添加新成员、删除元素、合并集合、求交集和差集。提供了参考代码并邀请读者交流意见,旨在共同进步。
摘要由CSDN通过智能技术生成

集合的特征:确定性/ 互异性/ 无序性。

常见的操作:1、查找集合中是否包含这个数据元素:Contains();

2、添加一个新成员数据,集合中不能存在这个元素。AddMember();

3、删除指定元素, 找到这个元素, 删除;如果没找到,则提示没找到,返回0(表示false)。Delete();

4、合并两个集合,不能有相同的元素。

5、求交集,找相同的元素。

6、求差集,例如:A{1, 2, 3}。B{2,4}。那么A相对B的差集就是{1,3}。

参考代码:

#include<stdio.h>
#include<stdlib.h>

// 利用单链表进行集合操作 
typedef int  elementType;
typedef struct node{
	elementType data;
	struct node *next;
}SetNode; // 集合节点

typedef struct{
	SetNode *first, *last;
}LinkSet;// 链式集合

//判断是否含有指定元素
bool Contains(LinkSet &ls, elementType x){
//	if(ls.first == ls.last){// 判断是否是空表 
//		return 0;
//	}
		// 移动指针 不需要创建的 
		SetNode *p = ls.first->next; 
		while(p != NULL && p->data < x){
			p = p->next;
		} 
		if(p != NULL && p->data ==
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值