中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C語言集合如何實現

小樊
86
2024-07-17 02:25:09
欄目: 編程語言

C語言中可以使用數組、結構體、指針等數據結構來實現集合。

  1. 使用數組:可以使用數組來存儲集合中的元素,然后通過遍歷數組來實現集合的操作,如查找、添加、刪除元素等操作。
#define MAX_SIZE 100

int set[MAX_SIZE];
int size = 0;

void addElement(int element) {
    set[size++] = element;
}

int contains(int element) {
    for (int i = 0; i < size; i++) {
        if (set[i] == element) {
            return 1;
        }
    }
    return 0;
}

void removeElement(int element) {
    for (int i = 0; i < size; i++) {
        if (set[i] == element) {
            for (int j = i; j < size - 1; j++) {
                set[j] = set[j + 1];
            }
            size--;
            break;
        }
    }
}
  1. 使用結構體:可以定義一個結構體來表示集合,結構體中包含一個數組和集合的大小,然后通過結構體成員來操作集合。
#define MAX_SIZE 100

typedef struct {
    int elements[MAX_SIZE];
    int size;
} Set;

void addElement(Set *set, int element) {
    set->elements[set->size++] = element;
}

int contains(Set *set, int element) {
    for (int i = 0; i < set->size; i++) {
        if (set->elements[i] == element) {
            return 1;
        }
    }
    return 0;
}

void removeElement(Set *set, int element) {
    for (int i = 0; i < set->size; i++) {
        if (set->elements[i] == element) {
            for (int j = i; j < set->size - 1; j++) {
                set->elements[j] = set->elements[j + 1];
            }
            set->size--;
            break;
        }
    }
}
  1. 使用指針:可以使用指針來管理集合,通過動態分配內存來存儲集合中的元素。
typedef struct {
    int *elements;
    int size;
} Set;

Set* createSet() {
    Set *set = (Set*)malloc(sizeof(Set));
    set->elements = (int*)malloc(sizeof(int) * MAX_SIZE);
    set->size = 0;
    return set;
}

void addElement(Set *set, int element) {
    set->elements[set->size++] = element;
}

int contains(Set *set, int element) {
    for (int i = 0; i < set->size; i++) {
        if (set->elements[i] == element) {
            return 1;
        }
    }
    return 0;
}

void removeElement(Set *set, int element) {
    for (int i = 0; i < set->size; i++) {
        if (set->elements[i] == element) {
            for (int j = i; j < set->size - 1; j++) {
                set->elements[j] = set->elements[j + 1];
            }
            set->size--;
            break;
        }
    }
}

void freeSet(Set *set) {
    free(set->elements);
    free(set);
}

0
凉山| 长春市| 湖南省| 娱乐| 渝中区| 资兴市| 莲花县| 仪征市| 呼伦贝尔市| 张北县| 福州市| 松桃| 漳浦县| 元阳县| 密云县| 荣成市| 尼勒克县| 商都县| 莒南县| 枝江市| 南溪县| 格尔木市| 焦作市| 潮安县| 蓬安县| 永登县| 申扎县| 鄯善县| 雅安市| 定陶县| 特克斯县| 温宿县| 麻城市| 普陀区| 子长县| 开远市| 明光市| 贡觉县| 友谊县| 雅江县| 玛曲县|