c语言list用法
在C语言中,没有内置的List数据类型,但是可以使用数组来实现类似的功能。下面是一种用数组实现List的常见方式:
1. 定义一个结构体来表示List和相关的元素:
c
typedef struct{
int capacity; List最大容量
int size; List当前元素个数
int *data; List元素数组
结构体sizeof} List;
2. 初始化List:
c
List* initList(int capacity){
List *list = (List*)malloc(sizeof(List)); 分配内存
list->capacity = capacity; 设置容量
list->size = 0; 初始元素个数为0
list->data = (int*)malloc(sizeof(int) * capacity); 分配数组内存
return list;
}
3. 添加元素到List的末尾:
c
void add(List *list, int element){
if(list->size == list->capacity){
List已满,需要扩容
list->capacity *= 2;
list->data = (int*)realloc(list->data, sizeof(int) * list->capacity);
}
list->data[list->size++] = element;
}
4. 获取List指定位置的元素:
c
int get(List *list, int index){
if(index < 0 index >= list->size){
printf("Index out of range.\n");
return -1; 返回一个错误值
}
return list->data[index];
}
5. 删除List末尾的元素:
c
void removeLast(List *list){
if(list->size > 0){
list->size;
}
}
6. 销毁List:
c
void destroyList(List *list){
free(list->data); 释放数组内存
free(list); 释放List内存
}
使用示例:
c
int main(){
List *list = initList(5); 初始化容量为5的List
add(list, 10);
add(list, 20);
add(list, 30);
printf("List[0]: %d\n", get(list, 0)); 输出:List[0]: 10
removeLast(list);
printf("List[2]: %d\n", get(list, 2)); 输出:Index out of range. List[2]: -1
destroyList(list); 销毁List
return 0;
}
这只是一种使用数组实现List的方式,根据实际需求可以进行相应的修改和扩展。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论