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] [全屏预览]
?相关文章推荐
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- php+ajax导入大数据时产生的问题处理
- C# 大数据导出word的假死报错的处理方法
- 用Python实现协同过滤的教程
- Python利用多进程将大量数据放入有限内存的教程
- mongodb常遇到的错误。
- Stack数据结构的特点后进先出的应用:大数据运算
- YARN或将成为Hadoop新发力点
- Hadoop 1.x版本伪单机配置
- Glusterfs的编译选项 #pragma GCC poison system popen
- Python 大数据思维导图
- 大白话storm
- SQL优化(二) 快速计算Distinct Count
- O2O的万达模式:不玩电商玩大会员大数据
- 在线数据迁移经验:如何为正在飞行的飞机更换引擎
- 不到100行代码实现一个简单的推荐系统
- 参加2013大数据全球技术峰会有感
- 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合