c语言list用法

  • 格式:doc
  • 大小:11.45 KB
  • 文档页数:4

c语言list用法

在C语言中,没有内置的List数据类型,但是可以使用数组来实现类似的功能。下面是一种用数组实现List的常见方式:

1. 定义一个结构体来表示List和相关的元素:

c

typedef struct{

int capacity; List最大容量

int size; List当前元素个数

int *data; List元素数组

} 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的方式,根据实际需求可以进行相应的修改和扩展。