亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
黎平县| 凌云县| 通辽市| 松溪县| 中山市| 靖西县| 兴宁市| 峡江县| 宁蒗| 新安县| 佛坪县| 屏南县| 云林县| 汤阴县| 太原市| 个旧市| 布尔津县| 镇赉县| 蒲城县| 定襄县| 青阳县| 宜昌市| 翁源县| 南通市| 玉环县| 象山县| 峨边| 巩留县| 定安县| 五峰| 乐都县| 稻城县| 珠海市| 乌拉特前旗| 济源市| 海城市| 安西县| 洛宁县| 潼关县| 友谊县| 南乐县|