在接下来的系列文章中,我们将介绍一系列应用于存储以及IO子系统的数据结构。这些数据结构相互关联又有着巨大的区别,希望我们能够不辱使命的将他们分门别类的介绍清楚。本文为第一节,介绍一个简单而又有用的数据结构:跳表 (SkipList)在对跳表进行讨论之前,我们首先描述一下跳表的核心思想。跳表(Skip...
分类:
其他好文 时间:
2014-09-13 06:11:44
阅读次数:
297
链表的题目总体来说细节比较多,因为链表的题目在操作链表的过程中本身有些复杂,所以如果链表作为编程题出现的时候,多数情况下题目本身的思路可能不是很复杂,不要把题目往复杂的方向去思考就好了~这里的链表只是说单向链表,双向链表,跳表。树的链表表示形式不属于这个链表的范畴。1.合并两个有序的链表。额外空.....
分类:
其他好文 时间:
2014-08-26 21:12:36
阅读次数:
280
memtable常驻于内存,需要按照key进行排序,通常意义上的话,可以使用二叉查找树来实现,跟进一步可以使用红黑树保证树的平衡,但是leveldb中使用了另外的一种数据结构:跳表Skip List。memtable声明在db/memtable.h中,定义如下:view plainclassMemT...
分类:
数据库 时间:
2014-08-11 11:41:02
阅读次数:
274
1.聊一聊跳表作者的其人其事
2. 言归正传,跳表简介
3. 跳表数据存储模型
4. 跳表的代码实现分析
5. 论文,代码下载及参考资料
. 聊一聊作者的其人其事
跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lists: a probabilistic...
分类:
其他好文 时间:
2014-08-08 16:03:46
阅读次数:
189
2014.07.07 22:03简介: 跳表(skip list)是一种随机化的有序数据结构。从形状上来看,长得比较像分层索引。能够在接近对数级别的时间内完成增、删、改、查操作。 你姑且可以认为这种数据结构的用途、用法都和平衡树很相似,但内部的实现原理则完全不同。图示: 下面是一条有序的单链表...
分类:
编程语言 时间:
2014-07-08 22:13:36
阅读次数:
365
为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用...
分类:
其他好文 时间:
2014-06-30 12:39:53
阅读次数:
257
skiplist介绍跳表(skip
List)是一种随机化的数据结构,基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logN)。跳表的具体定义,跳表是由William
Pugh发明的,这位确实是个大牛,搞出一些很不错的东西。简单说来跳表也是链表的一种,只不过它在链表的基础上增加了跳跃功能...
分类:
其他好文 时间:
2014-06-07 07:18:01
阅读次数:
239