点击此处查看最新的网赚项目教程

list转数组_数组转listpython_数组转list集合

demo of ArrayList

1、定义ArrayList 结构体类型

#include 
#include 
// 定义 ArrayList 结构体
typedef struct {
    int* data;  // 数组指针
    int size;   // 当前元素个数
    int capacity;  // 分配的数组空间大小
} ArrayList;

2、创建指定初始容量的 ArrayList

ArrayList* createArrayList(int capacity) {
    ArrayList* list = (ArrayList*)malloc(sizeof(ArrayList));
    list->data = (int*)malloc(capacity * sizeof(int));
    list->size = 0;
    list->capacity = capacity;
    return list;
}

3、向 ArrayList 的末尾添加元素

void add(ArrayList* list, int value) {
    if (list->size == list->capacity) {
        // 如果当前元素个数等于数组空间大小,则需要扩容
        list->data = (int*)realloc(list->data, list->capacity * 2 * sizeof(int));
        list->capacity *= 2;
    }
    list->data[list->size++] = value;
}

4、获取指定位置的元素

int get(ArrayList* list, int index) {
    if (index = list->size) {
        printf("Index out of boundsn");
        exit(1);
    }
    return list->data[index];
}

5、修改指定位置的元素的值

void set(ArrayList* list, int index, int value) {
    if (index = list->size) {
        printf("Index out of boundsn");
        exit(1);
    }
    list->data[index] = value;
}

6、删除指定位置的元素

void removeAt(ArrayList* list, int index) {
    if (index = list->size) {
        printf("Index out of boundsn");
        exit(1);
    }
    for (int i = index; i size - 1; i++) {
        list->data[i] = list->data[i + 1];
    }
    list->size--;
    // 如果当前元素个数小于数组空间大小的 1/4,则缩小数组空间大小
    if (list->size capacity / 4) {
        list->data = (int*)realloc(list->data, list->capacity / 2 * sizeof(int));
        list->capacity /= 2;
    }
}

7、销毁 ArrayList

void destroyArrayList(ArrayList* list) {
    free(list->data);
    free(list);
}

8、main方法测试

int main() {
    ArrayList* list = createArrayList(10);
    add(list, 1);
    add(list, 2);
    add(list, 3);
    add(list, 4);
    add(list, 5);
    printf("Element at index 0: %dn", get(list, 0));
    printf("Element at index 3: %dn", get(list, 3));
    set(list, 1, 10);
    printf("Element at index 1 after setting: %dn", get(list, 1));
    removeAt(list, 2);
    printf("Element at index 2 after removing: %dn", get(list, 2));
    destroyArrayList(list);
    return 0;
}

以上 ArrayList 实现了动态数组的功能。在 createArrayList 函数中,我们通过 malloc 函数分配了一个数组的空间,size 表示当前元素个数,capacity 表示分配的数组空间大小。

add 函数用于向 ArrayList 的末尾添加元素,如果当前元素个数等于数组空间大小,则需要扩容。get 函数用于获取指定位置的元素的值,set 函数用于修改指定位置的元素的值,removeAt 函数用于删除指定位置的元素,如果当前元素个数小于数组空间大小的 1/4,则需要进行缩小空间。

destroyArrayList 函数用于销毁 ArrayList 的内存。在 main 函数中我们可以看到如何使用这个 ArrayList 来添加、获取、修改和删除元素的方式。

运行截图:

数组转listpython_list转数组_数组转list集合

res-001

list转数组_数组转list集合_数组转listpython

res-002

数组转listpython_list转数组_数组转list集合

接着奏乐接着淦

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: cai842612