码迷,mamicode.com
首页 > 编程语言 > 详细

Java数据结构和算法(八)--红黑树与2-3树

时间:2019-06-29 14:56:19      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:mil   就会   二分   size   com   定义   通过   style   idt   

红黑树规则:

  1、根节点与叶节点都是黑色节点

  2、每个红色节点的两个子节点都是黑色节点,反之,不做要求,换句话说就是不能有连续两个红色节点

  3、从根节点到所有叶子节点上的黑色节点数量是相同的

一般对红黑树的讲述都是先给出这样的定义,这样想对不太容易理解的,而在算法4一书中,直接跳过这些规则,而讲述了红黑树与2-3树的等价性

如果我们先了解2-3树,理解了红黑树与2-3树之间的关系,回过头就会发现红黑树不难

2-3树:

技术图片

2-3树满足二分搜索树的基本性质,但是不是二叉树

2-3树节点可以存放一个元素或两个元素,每个节点有两个(2节点)或三个子节点(3节点),这就是2-3树

2-3树是一个绝对平衡的树

2-3树的绝对平衡性:

1、2-3树新插入的节点一定不能插到空节点的位置

2、如果一个新节点插入到2节点,就会形成3节点

技术图片

3、如果一个心机诶单插入到3节点,临时形成4节点,然后进行变形

技术图片

如果这个节点是根节点,这样就处理完了,如果插入的节点是叶子节点

1).父节点为2-节点

技术图片

2).父节点为3-节点

 技术图片

通过上面的规则,实现了2-3树的绝对平衡

红黑树和2-3树的等价性:

将2节点与3节点类比到红黑树

技术图片

通过上面的过程,我们得到红黑树,所有红色节点都是左倾斜

实践:

  所以此时我们很容易就能把2-3树转换为红黑树

技术图片

原来的2-3树有三个3-节点,所以红黑树中就有三个红色节点

 

Java数据结构和算法(八)--红黑树与2-3树

标签:mil   就会   二分   size   com   定义   通过   style   idt   

原文地址:https://www.cnblogs.com/huigelaile/p/11106466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!