村长 发表于 2021-12-13 21:57:51

【分享】红黑树的性质与实现思路


①红黑树(RBT)的Search,Insert,Delete操作的时间复杂度与平衡二叉树(AVL Tree)相同,皆是O(㏒2n)

②平衡二叉树适用以查为主,很少插入/删除的场景
红黑树适用于频繁插入、删除的场景,实用性更强http://cdn.u1.huluxia.com/g4/M03/03/73/rBAAdmGY5WeAJtlYAADcruwpcbM78.jpeg
                ●图一

③红黑树相比普通二叉查找树相比,有以下要求
    ㈠每个结点或是红色或是黑色的
    ㈡根节点是黑色的
    ㈢叶节点(外部结点、NULL结点、失败结点)均是黑色的
          (注:此处的叶节点跟普通二叉树的叶子结点不同,需要注意,红黑树的叶节点只是一个空指针)
    ㈣不存在两个相邻的红结点(即红结点的父节点和孩子结点均为黑色)
    ㈤对每个结点,从该结点到任一叶结点的简单路径上,所含黑结点的数目相同
    这五个点简单来说就是:
            左根右,根叶黑,不红红,黑路同http://cdn.u1.huluxia.com/g4/M03/03/73/rBAAdmGY5WiAXEbDAAAg97EAorQ423.png
             ●图二
      如图二,图二不满足㈣,它就不是一个红黑树

④结点的黑高:(即bh参数)指从某结点出发(不含该结点)到达任一空结点的路径上黑结点总数

例如:图一17号的bh值就为2

⑤红黑树的插入:
      先查找,确定插入位置(原理同二叉排序树),插入新结点
       新结点是根--染为黑色
       新结点非根--染为红色(原因:保证黑路同这一特性)
       若插入新结点后依然满足红黑树定义,则插入结束
       若插入新结点后不满足红黑树定义,需要调整,使其重新满足红黑树定义
       如何调整:看新结点叔叔的脸色
      
       例:图一中27是新结点的话,27的叔叔就是27的父亲(25)的左兄弟(15)

      如果叔叔是黑色:旋转+染色
      ●LL型:右单旋,父换爷+染色
      ●RR型:左单旋,父换爷+染色
      ●LR型:左、右双旋,儿换爷+染色
      ●RL型:右、左双旋,儿换爷+染色
      注:LL,RR,LR,RL为新结点所处的位置,例27号的位置就为RR
      如果叔叔是红色:染色+变新
      ●叔父爷染色,爷变为新结点

叔叔为黑色,且为LL型时交换例子如下:http://cdn.u1.huluxia.com/g4/M02/03/80/rBAAdmGY64yAFch9AADiHJbe0po434.jpg
叔叔为红色,违反不红红时情况如图http://cdn.u1.huluxia.com/g4/M01/03/99/rBAAdmGY9liAIwiEAAHNWoopMs4522.jpg
叔叔为黑色,违反不红红,且为RR时情况如图http://cdn.u1.huluxia.com/g4/M02/03/8F/rBAAdmGY8jaAS7-HAALSgAGcdKg496.jpg
叔叔为黑色,违反不红红,且为LR时情况如图:
RL情况跟LR具体情况相同。http://cdn.u1.huluxia.com/g4/M01/03/99/rBAAdmGY9lmAUitXAADnhVObWRo479.jpg

⑥从根节点到叶节点的最长路径不大于最短路径的2倍

⑦有n个内部节点的红黑树高度h≤2㏒2(n+1)

千面萌萌 发表于 2021-12-14 10:52:48

我是个凑数的。。。

无量科技 发表于 2021-12-14 14:55:42

回个帖子,下班咯~

liqiang24 发表于 2021-12-14 22:05:14

路过 帮顶 嘿嘿

伴我多久 发表于 2021-12-14 22:24:19

LZ帖子不给力,勉强给回复下吧

天镜盗梦 发表于 2021-12-15 08:34:30

顶起顶起顶起

68079330 发表于 2021-12-15 09:21:19

站位支持

梦影 发表于 2021-12-15 11:16:09

看帖要回,回帖才健康,在踩踩,楼主辛苦了!

半度微凉 发表于 2021-12-15 12:49:10

前排顶,很好!

yichong 发表于 2021-12-16 09:09:08

顶起出售广告位
页: [1] 2
查看完整版本: 【分享】红黑树的性质与实现思路

村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科
技平台参与或发布项目定制各种软件就来村长黑科技平台

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的破解分析文章、破解分析视频、补丁、注册机和注册信息,

仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习破解分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,

请购买注册正版软件,获得正版优质服务!不允许将上述内容私自传播、销售或者其他任何非法用途!否则,产生任何法律责任,一切后果请用户自负,与本网站无关!如有侵权或非法用途请举报!请发送到邮箱:cxphj8@foxmail.com

《意见反馈》或《截图指定页面备注》发送到邮件,收到后24小时内删除,禁止用户学习使用关掉用户【学习使用权】!