前言:
当前同学们对“arraylist 删除”可能比较重视,兄弟们都需要分析一些“arraylist 删除”的相关内容。那么小编在网摘上收集了一些对于“arraylist 删除””的相关文章,希望各位老铁们能喜欢,咱们快快来学习一下吧!1、定义ArrayList 结构体类型
#include <stdio.h>#include <stdlib.h>// 定义 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 < 0 || index >= list->size) { printf("Index out of bounds\n"); exit(1); } return list->data[index];}5、修改指定位置的元素的值
void set(ArrayList* list, int index, int value) { if (index < 0 || index >= list->size) { printf("Index out of bounds\n"); exit(1); } list->data[index] = value;}6、删除指定位置的元素
void removeAt(ArrayList* list, int index) { if (index < 0 || index >= list->size) { printf("Index out of bounds\n"); exit(1); } for (int i = index; i < list->size - 1; i++) { list->data[i] = list->data[i + 1]; } list->size--; // 如果当前元素个数小于数组空间大小的 1/4,则缩小数组空间大小 if (list->size < list->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: %d\n", get(list, 0)); printf("Element at index 3: %d\n", get(list, 3)); set(list, 1, 10); printf("Element at index 1 after setting: %d\n", get(list, 1)); removeAt(list, 2); printf("Element at index 2 after removing: %d\n", get(list, 2)); destroyArrayList(list); return 0;}
以上 ArrayList 实现了动态数组的功能。在 createArrayList 函数中,我们通过 malloc 函数分配了一个数组的空间,size 表示当前元素个数,capacity 表示分配的数组空间大小。
add 函数用于向 ArrayList 的末尾添加元素,如果当前元素个数等于数组空间大小,则需要扩容。get 函数用于获取指定位置的元素的值,set 函数用于修改指定位置的元素的值,removeAt 函数用于删除指定位置的元素,如果当前元素个数小于数组空间大小的 1/4,则需要进行缩小空间。
destroyArrayList 函数用于销毁 ArrayList 的内存。在 main 函数中我们可以看到如何使用这个 ArrayList 来添加、获取、修改和删除元素的方式。
运行截图:
标签: #arraylist 删除