c语言线性列表源代码

       C语言编程,经常需要使用线性列表,期望能够高效的使用下标访问列表元素,内部内存管理,方便的动态添加、删除元素,排序等,请看看下面的代码能不能达到要求。

.c文件


LIST *list_new(){
	LIST *l=malloc_sg(sizeof(LIST),"list_new");
	if(l){
		l->list=NULL;
		l->size=0;
		l->malloc_size=0;
	}
	return l;
}

void list_destroy(LIST *list){
	if(list){
		if(list->list) free_sg(list->list,"list_destroy");
		free_sg(list,"list_destroy");
	}
}

void list_destroy_ex(LIST *list,ELEMENT_FREE e_free)
{
	if(list){
        for(int i=0; i<list->size; i++){
            e_free(list->list[i]);
        }
        list->size = 0;
		if(list->list) free_sg(list->list,"list_destroy");
		free_sg(list,"list_destroy");
	}
}

int list_is_empty(LIST *ls)
{
    if(ls && ls->size > 0){
        return false;
    }
    return true;
}

int list_append(LIST *list,void *element){
	if(list->lis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值