C++实现用类设计集合:存储有限的集合(简称有界集合类),数据不允许存储,会存满,实现集合的添加,判满,判空,是否存在,清空,排序,存储到文件,从文件读取。
时间: 2023-05-20 17:07:12 浏览: 80
非常感谢您的问题!以下是 CSDN 开发的 C知道 的回答:
这里是一个基于类的有界集合类的实现,包括添加、判满、判空、是否存在、清空、排序、存储到文件和从文件读取等功能。请注意,这只是一个简单的实现,可能需要根据您的具体需求进行修改。
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int size;
} BoundedSet;
void init(BoundedSet *set) {
set->size = 0;
}
bool isFull(BoundedSet *set) {
return set->size == MAX_SIZE;
}
bool isEmpty(BoundedSet *set) {
return set->size == 0;
}
bool contains(BoundedSet *set, int value) {
for (int i = 0; i < set->size; i++) {
if (set->data[i] == value) {
return true;
}
}
return false;
}
bool add(BoundedSet *set, int value) {
if (isFull(set) || contains(set, value)) {
return false;
}
set->data[set->size++] = value;
return true;
}
void clear(BoundedSet *set) {
set->size = 0;
}
void sort(BoundedSet *set) {
for (int i = 0; i < set->size - 1; i++) {
for (int j = i + 1; j < set->size; j++) {
if (set->data[i] > set->data[j]) {
int temp = set->data[i];
set->data[i] = set->data[j];
set->data[j] = temp;
}
}
}
}
bool saveToFile(BoundedSet *set, const char *filename) {
FILE *file = fopen(filename, "wb");
if (file == NULL) {
return false;
}
fwrite(set->data, sizeof(int), set->size, file);
fclose(file);
return true;
}
bool loadFromFile(BoundedSet *set, const char *filename) {
FILE *file = fopen(filename, "rb");
if (file == NULL) {
return false;
}
int count = fread(set->data, sizeof(int), MAX_SIZE, file);
set->size = count;
fclose(file);
return true;
}
```
希望这个实现能够满足您的需求!如果您有任何问题或建议,请随时与我联系。
阅读全文