点击此处查看最新的网赚项目教程
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 来添加、获取、修改和删除元素的方式。
运行截图:
res-001
res-002
接着奏乐接着淦
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: cai842612
声明:本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。