一.概述 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。在大部分情况下,跳跃表的效率可以和平衡树(关系型数据库的索引就是平衡树结构)相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序使用跳跃表来代替平衡树。 R ...
分类:
其他好文 时间:
2018-11-10 18:06:49
阅读次数:
184
$FHQ\_Treap$是平衡树的一种,它不仅支持几乎所有的平衡树的操作,而且实现特别简单,总共只有两个操作。这里来简单介绍一下。 基本操作 $FHQ\_Treap$和$Treap$一样是需要用随机值来维护树的形态的,但是$FHQ\_Treap$不需要旋转来调整形态,而且用$Split$和$Merg ...
分类:
其他好文 时间:
2018-11-08 00:11:57
阅读次数:
188
二叉树查找效率很高,但是它有一个缺点。类似下面一棵树,查找效率是线性的: 定义 于是,引出了平衡二叉树(Self-balancing binary search tree),也叫 BTree(balance tree),AVLTree 它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左 ...
分类:
其他好文 时间:
2018-11-06 23:31:03
阅读次数:
197
看了网上三四篇博客,学习了AVL树维护平衡的方式。但感觉他们给出的代码都有一点瑕疵或者遗漏,懂得了思想之后,花了一些时间把他们几篇的长处结合起来,没有使用指针,实现了一下。每个小逻辑功能都抽象成了函数,应该比较好理解,代码逻辑看起来也比较清晰。 下面给出主要的功能插入和删除 。至于其他一些没有动到树 ...
分类:
其他好文 时间:
2018-11-05 10:12:52
阅读次数:
181
20172307 2018 2019 1 《程序设计与数据结构》第7周学习总结 教材学习内容总结 + 树的分类 广义树:对结点所含有的孩子数目无限制的树。 n元树:每一结点不超过n个孩子的树。(结点最多具有两个孩子的树称为二叉树) 树的平衡:树的所有叶子都位于同一层或者至少是彼此相差不超过一个层,就 ...
分类:
其他好文 时间:
2018-11-03 02:11:03
阅读次数:
127
非旋Treap "模板地址" (为便于理解,以下演示代码均使用数组版) 概述 非旋 Treap 是一种按照堆的原理以随机权值来维护平衡树平衡的平衡树,在一般情况下,非旋 Treap 趋于平衡,但不稳定。非旋 Treap 的基本操作少,实现简单,作用范围广,基本可以实现 Splay 所支持的操作 (节 ...
分类:
其他好文 时间:
2018-11-01 20:28:48
阅读次数:
257
"之前写treap的传送门" 之前写的那个太毒瘤了,这次放一个~~更毒瘤的~~指针版上来 ...
分类:
其他好文 时间:
2018-11-01 18:30:53
阅读次数:
162
"P3835 【模板】可持久化平衡树" 题意 题目背景 本题为题目 普通平衡树 的可持久化加强版。 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作( 对于各个以往的历史版本 ): 1. 插入$x$数 2. 删除$x$数(若有多个相同的数,因只删除一个, 如果没有 ...
分类:
其他好文 时间:
2018-11-01 11:53:53
阅读次数:
151
注意 链表 / 平衡树 / 权值数据结构上二分 在查前驱后继时的作用 ...
分类:
其他好文 时间:
2018-10-29 10:28:55
阅读次数:
195
前言 不得不说,可持久化数据结构真是太难了! 由于数据结构这东西真的太 玄学 了,学这个主席树我真的学了很久。 简介 主席树为什么叫主席树?据说因为它是一个名字缩写为$HJT$的神犇发明的,与当时主席的名字缩写一样...... 主席树实质上就是一棵 可持久化线段树 ,它的具体实现可以看下面。 让我们 ...
分类:
其他好文 时间:
2018-10-28 16:00:25
阅读次数:
172