From 5f60b33822f573796e17db5f76ad933098dd51af Mon Sep 17 00:00:00 2001 From: Snailclimb Date: Thu, 16 Aug 2018 21:54:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BD=BF=E7=94=A8=E7=BA=A2?= =?UTF-8?q?=E9=BB=91=E6=A0=91=E7=9A=84=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 数据结构与算法/数据结构.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/数据结构与算法/数据结构.md b/数据结构与算法/数据结构.md index 8231705c..58c44c43 100644 --- a/数据结构与算法/数据结构.md +++ b/数据结构与算法/数据结构.md @@ -78,17 +78,21 @@ * **6 红黑树** - 红黑树特点: - 1. 每个节点非红即黑; - 2. 根节点总是黑色的; - 3. 每个叶子节点都是黑色的空节点(NIL节点); - 4. 如果节点是红色的,则它的子节点必须是黑色的(反之不一定); - 5. 从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度) + 1. 每个节点非红即黑; + 2. 根节点总是黑色的; + 3. 每个叶子节点都是黑色的空节点(NIL节点); + 4. 如果节点是红色的,则它的子节点必须是黑色的(反之不一定); + 5. 从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度) - 红黑树的应用: TreeMap、TreeSet以及JDK1.8之后的HashMap底层都用到了红黑树。 + + - 为什么要用红黑树 - - 推荐文章 + 简单来说红黑树就是为了解决二叉查找树的缺陷,因为二叉查找树在某些情况下会退化成一个线性结构。详细了解可以查看 [漫画:什么是红黑树?](https://juejin.im/post/5a27c6946fb9a04509096248#comment)(也介绍到了二叉查找树,非常推荐) + + - 推荐文章: - [漫画:什么是红黑树?](https://juejin.im/post/5a27c6946fb9a04509096248#comment)(也介绍到了二叉查找树,非常推荐) - [寻找红黑树的操作手册](http://dandanlove.com/2018/03/18/red-black-tree/)(文章排版以及思路真的不错) - [红黑树深入剖析及Java实现](https://zhuanlan.zhihu.com/p/24367771)(美团点评技术团队) @@ -96,7 +100,7 @@ [二叉树学习笔记之B树、B+树、B*树 ](https://yq.aliyun.com/articles/38345) - [《B-树,B+树,B*树详解》](https://blog.csdn.net/aqzwss/article/details/53074186) + [《B-树,B+树,B*树详解》](https://blog.csdn.net/aqzwss/article/details/53074186) [《B-树,B+树与B*树的优缺点比较》](https://blog.csdn.net/bigtree_3721/article/details/73632405)