libc 红黑树

文章介绍了Linux基础库libc中红黑树的实现,其头文件为search.h,尽管名称未直接表明,但从源码分析确认为红黑树。提供的操作包括插入(tsearch)、查找(tfind)、删除(tdelete)和遍历(twalk),但缺少获取第一个元素的功能。为弥补这一不足,文中给出了自定义的tfirst函数来获取第一个元素。
摘要由CSDN通过智能技术生成

linux基础库libc红黑树的实现,头文件为search.h,从命名上完全看不出来是红黑树,但看源码的确是红黑树的实现,支持的操作有限,只有tsearch(插入)、tfind(查找)tdelete(删除)和twalk(遍历)基本操作,没有获取第一个元素的操作,以下是自己的实现

const void* tfirst(void *const *rootp)
{
    const void *node = NULL;
    int t_compare(const void *a, const void *b) {
        node = b;
        return -1;
    }

    tfind(NULL, rootp, t_compare);
    return node;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值