c语言实现抽象数据类型,集合抽象数据类型的C语言实现
时间: 2024-02-13 12:01:52 浏览: 76
数据结构 C语言 设计集合抽象数据类型
以下是一个简单的集合抽象数据类型的C语言实现:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_SET_SIZE 100
typedef struct {
int data[MAX_SET_SIZE];
int size;
} Set;
void initSet(Set *s) {
s->size = 0;
}
bool isElementOfSet(Set *s, int x) {
for (int i = 0; i < s->size; i++) {
if (s->data[i] == x) {
return true;
}
}
return false;
}
bool addElementToSet(Set *s, int x) {
if (s->size >= MAX_SET_SIZE) {
return false;
}
if (isElementOfSet(s, x)) {
return false;
}
s->data[s->size] = x;
s->size++;
return true;
}
bool removeElementFromSet(Set *s, int x) {
int i;
for (i = 0; i < s->size; i++) {
if (s->data[i] == x) {
break;
}
}
if (i == s->size) {
return false;
}
s->size--;
for (int j = i; j < s->size; j++) {
s->data[j] = s->data[j+1];
}
return true;
}
void printSet(Set *s) {
printf("{ ");
for (int i = 0; i < s->size; i++) {
printf("%d ", s->data[i]);
}
printf("}\n");
}
int main() {
Set s;
initSet(&s);
addElementToSet(&s, 1);
addElementToSet(&s, 2);
addElementToSet(&s, 3);
addElementToSet(&s, 4);
addElementToSet(&s, 5);
printSet(&s); // output: { 1 2 3 4 5 }
removeElementFromSet(&s, 3);
printSet(&s); // output: { 1 2 4 5 }
return 0;
}
```
这个实现使用一个结构体来表示集合,包含一个整数数组和一个整数表示集合的大小。它包含了一些基本操作,比如初始化集合,添加元素到集合,从集合中删除元素,查看集合中是否包含某个元素,以及打印集合的内容。
阅读全文