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小时内删除。