Java提高篇(二七) TreeMap TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识 ...
分类:
编程语言 时间:
2017-08-15 10:05:05
阅读次数:
242
红黑树之删除节点 上一篇文章中讲了如何向红黑树中添加节点,也顺便创建了一棵红黑树。今天写写怎样从红黑树中删除节点。 相比于添加节点,删除节点要复杂的多。不过我们慢慢梳理,还是能够弄明白的。 回顾一下红黑树的性质 红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以 ...
分类:
其他好文 时间:
2017-08-12 22:50:21
阅读次数:
247
java技术栈 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1. ...
分类:
编程语言 时间:
2017-08-12 14:02:40
阅读次数:
219
B~树 1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构 ...
分类:
Web程序 时间:
2017-08-11 23:06:29
阅读次数:
340
红黑树之插入节点 红黑树的性质 红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 正是红黑树的这5条性质,使一棵n个结点的红黑树始终保持了logn的高度,从而也就解释了上面所说的“红黑树的查找、插入、删除的时间 ...
分类:
其他好文 时间:
2017-08-10 20:50:12
阅读次数:
262
1. 高度:树T所有节点深度的最大值,节点V对应子树高度为该节点的高度,根节点高度为整棵树的高度 2.深度:节点V到根节点R的唯一路径所经过的数目称为V的深度 3.huffman编码:构造出的带权平均深度最小的二叉树为huffman树(权值越大,深度越小) 4.二叉搜索树:任意节点R的左(右)子树中 ...
分类:
其他好文 时间:
2017-08-09 23:47:04
阅读次数:
221
转自:http://www.cnblogs.com/skywang12345/p/3624343.html 红黑树的介绍 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左 ...
分类:
编程语言 时间:
2017-08-09 12:54:26
阅读次数:
202
leveldb中的memtable仅仅是一个封装类,它的底层实现是一个跳表。跳表是一种基于随机数的平衡数据结构。其它的平衡数据结构还有红黑树、AVL树。但跳表的原理比它们简单非常多。跳表有点像链表,仅仅只是每一个节点是多层结构,通过在每一个节点中添加向前的指针提高查找效率。例如以下图: 在/leve ...
分类:
数据库 时间:
2017-08-08 19:56:44
阅读次数:
224
插入图示(S,E,A,R,C,H,X,M,P对应5,1,18,3,8,20,13,16) 左旋转 右旋转 颜色转换 ...
分类:
编程语言 时间:
2017-08-07 10:06:31
阅读次数:
170
原链接:传送门 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入 ...
分类:
编程语言 时间:
2017-08-06 19:24:22
阅读次数:
214