集合的特征:确定性/ 互异性/ 无序性。
常见的操作: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 ==