set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、 ...
分类:
其他好文 时间:
2016-10-30 20:18:45
阅读次数:
241
1、设删除的节点为$z$,另外定义节点$x,y$如下: $y=\left\{\begin{matrix}z & z的左孩子或右孩子为空节点\\ Successor(z) & otherwise\end{matrix}\right.$ $x=\left\{\begin{matrix}y.left & ...
分类:
其他好文 时间:
2016-10-29 22:13:15
阅读次数:
306
1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找 ...
分类:
其他好文 时间:
2016-10-24 23:53:53
阅读次数:
499
在网上学习了一些材料。 这一篇:https://www.zhihu.com/question/30527705 另外Redis作者描述的使用跳表的原因: 上面文章中有一些英文缩写,整理如下: 红黑树与B(+)树工程实现的比较: 从各自特点特征角度,分析各种数据结构的应用场景: 红黑树的介绍可以看这两 ...
分类:
其他好文 时间:
2016-10-22 18:12:43
阅读次数:
891
*TreeSet与HashSet相比,树集是有序集合,对树集遍历,每个值将自动按照排序顺序呈现。 * TreeSet当前使用的是红黑树,每次将一个元素添加到树中时,都将被放置正确的位置之中 * * 在TreeSet中添加元素的速度要快于数组和链表,但慢于散列表(HashSet) * * TreeSe ...
分类:
编程语言 时间:
2016-10-22 14:10:11
阅读次数:
191
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 ...
分类:
数据库 时间:
2016-10-19 07:44:26
阅读次数:
318
Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。 TreeMap底层通过红黑树(Red-Black tre ...
分类:
其他好文 时间:
2016-10-15 11:47:12
阅读次数:
163
了解集合先复习一下数据结构,线性表(ArrayList),链式表(LinkedList),红黑树表(TreeSet) 哈系表(HashSet)链式哈系表(LinkedHashSet)枚举表(EnumSet)队列: 栈 (Queue先进先出 栈) 双端队列(Deque) HashSet 通过hashC ...
分类:
其他好文 时间:
2016-10-12 11:16:47
阅读次数:
153
漫游红黑树之插入篇 1. 红黑树简介 2. 红黑树性质介绍 3. 漫游红黑树 4. 我的EasyCoding库 5. 参考资料及代码下载 <1>. 红黑树简介 红黑树是一种平衡的二叉查找树,是一种计算机科学中常用的数据结构,最典型的应用是实现数据的关联,例如map等数据结构的实现。1972年,鲁道夫 ...
分类:
其他好文 时间:
2016-10-02 21:58:17
阅读次数:
323