今天我们要说的红黑树就是就是一棵非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入、搜索、删除的效率都比较高。红黑树也是实现 TreeMap 存储结构的基石。 1.二叉搜索树 二叉搜索树又叫二叉查找树、二叉排序树,我们先看一下典型的二叉搜索树,这样的二叉树有何规则特 ...
分类:
其他好文 时间:
2019-11-01 20:37:24
阅读次数:
93
先了解一下用到的位运算符:https://www.cnblogs.com/gavinYang/p/11196492.html 一、初始化 1.无参构造函数: 2.指定初始化大小和负载因子: 3.指定初始化大小(会调用2) 二、put元素(转红黑树和put一个TreeNode时待补充) 三、get元素 ...
分类:
其他好文 时间:
2019-11-01 18:30:26
阅读次数:
65
听说这个东西有很多种写法什么的,来不及了(要退役了),先整一个之前用到的,可能用到的频率比较高的东西上来。 这种写法是当时要定义一个什么 然后$map$里面是红黑树(所以$map$也自带排序来着),这里结构体的小于号要重载,或者给优先队列定义一个比较法则,否则会$CE$。 由于$vis$只是一个标记 ...
分类:
编程语言 时间:
2019-10-31 23:27:28
阅读次数:
509
前言 最近断断续续花了一个礼拜的时间去看红黑树算法,关于此算法还是比较难,因为涉及到诸多场景要考虑,同时接下来我们要讲解的HashMap、TreeMap等原理都涉及到红黑树算法,所以我们不得不了解其原理,关于一些基础知识这里不再讲解,本文参考博文:《https://www.cnblogs.com/a ...
分类:
编程语言 时间:
2019-10-31 00:35:06
阅读次数:
95
1、HashMap介绍 HashMap为Map接口的一个实现类,实现了Map所有的操作。HashMap除了允许key、value为null值和非线程安全外,其他实现几乎和HashTable一致。HashMap使用散列存储的方式保存kay-value键值对,因此其不支持数据保存的顺序。如果想要使用有序 ...
分类:
其他好文 时间:
2019-10-29 23:27:44
阅读次数:
87
RMI: https://www.jianshu.com/p/de85fad05dcb、 红黑树: https://www.cnblogs.com/wskwbog/p/11236136.html https://blog.csdn.net/cckevincyh/article/details/531 ...
分类:
其他好文 时间:
2019-10-29 09:39:17
阅读次数:
67
TreeMap实现了SotredMap接口,它是有序的集合。而且是一个红黑树结构,每个key-value都作为一个红黑树的节点。如果在调用TreeMap的构造函数时没有指定比较器,则根据key执行自然排序,如果指定了比较器则按照比较器来进行排序。 一、数据结构 1、继承关系 2、实现接口 3、基本属 ...
分类:
其他好文 时间:
2019-10-25 10:20:50
阅读次数:
66
算法对比二叉树当我查找8的时候需要走五步红黑树当我查询8的时候需要四次相对于二叉树有了一些优化没有无限延伸.红黑树的深度会很深(深度不可控制)hash数据量大的话查询很快(不能范围查找)BTree查询只需要查两步就可以找到,缺点携带(data)扩大横向减少纵向深度ps:java拿取数据一般是这样的:java程序-->CPU--->内存---->硬盘,而内存与硬盘的交互是有大小限制
分类:
数据库 时间:
2019-10-23 18:22:53
阅读次数:
130
1. 速度更快 – 红黑树 HashMap中的红黑树 HashMap中链长度大于8时采取红黑树的结构存储。 红黑树,除了添加,效率高于链表结构。 2. 代码更少 – Lambda Lambda表达式的基础语法:Java8引入了一个新的操作符“->”,该操作符成为箭头操作符或者Lambda操作符,箭头 ...
分类:
其他好文 时间:
2019-10-23 12:02:56
阅读次数:
86
map和set的都是关联容器,底层实现都是红黑树 一、map映射 存储键值对 实例化时需要传递两个类型 一个键key的类型 另外一个是值value类型 key唯一 相同的key只会存在一条记录 key有序 插入指定位置 遍历时 有序 (1)插入 pair<iterator, bool> insert ...
分类:
其他好文 时间:
2019-10-21 16:24:33
阅读次数:
66