您的位置:首页 > 编程语言 > C语言/C++

C语言跳表(skiplist)实现

2015-10-30 11:24 721 查看

C语言跳表(skiplist)实现

http://www.oschina.net/code/snippet_1444806_33693

分享到:



收藏

+3

踩顶0

跳表(skiplist)是一个非常优秀的数据结构,实现简单,插入、删除、查找的复杂度均为O(logN)。LevelDB的核心数据结构是用跳表实现的,redis的sorted set数据结构也是有跳表实现的。代码在这里:http://flyingsnail.blog.51cto.com/5341669/1020034

由于涉及直接指针操作,代码产生很多分支,学习者很难记忆。我的做法是使用内核的list_head组件,搭建起跳表基本操作。list_head组件成功之处在于,将链表成员分离,一是使用dummy head,二是对指针的构造和析构,从而避免繁琐的指针操作和分支判断,可降低程序员心智负担,提高开发效率,堪称C语言里的链表STL。

标签: <无>

源码与演示:源码出处


代码片段(1)[全屏查看所有代码]

1. [文件] skip_list.c ~ 6KB 下载(30) 跳至 [1] [全屏预览]

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大数据