【数据结构】红黑树{更新中}

 

二叉树

二叉树的产生:方便在一堆数中快速找到目标数。

二叉树的查找规律:以1号树为例,查100。从树根50起,比50大就到以75为根的右子树中找;比75大,同理;与右子树根100比对相等,结束。总计遍历 3 个节点。注意观察1号树有3层节点,因此在1号树中查找任意数字最多只需遍历3个节点;同理 2号树 最多遍历4个节点。与1号树相比遍历数堆查找则最多 7 个,平均 3.5 个节点。 

数列构造的二叉树
同一堆数构成的不同的二叉树

 

二叉树的树形:不同的树形和数字插入二叉树的顺序有关。1号树的可能插入顺序如图解。同理 2号树 的可能插入顺序为:75,100,25,30,60,10 。

树的构造过程
1号树的构造过程图例

 

平衡二叉树

平衡二叉树的产生:同一数堆的形状不同的二叉树中,不是所有二叉树都是左右平衡的,极端情况是不存在左/右子树。此类形状的二叉树是不平衡的,与数组无异。

平衡二叉树:每个节点的左右子树高度较为平衡。

 

不平衡的二叉树
不平衡的二叉树

 

红黑树的规则

红黑树的产生:1978年由"平衡二叉B树"演变而来,是一个查找,插入,删除效率都为 O(log_{n}) 的平衡二叉树。

红黑树的规则:

根节点着黑色
1 根节点一定是黑色
叶子是黑色的NIL节点
2 叶子是黑色的NIL节点
节点不是红色就是黑色
3 节点不是红色就是黑色

 

红色节点一定有两个黑子
4 红色节点一定有两个黑子
任意节点到叶子路过数量相同的黑色节点
5 任意节点到所有叶子路过数量相同的黑色节点

 

4号树 与 3号树 镜像对称,所以也找不到建树方案;1号树 左右完全平衡一定满足上述 5 个条件,下面给出 2号树 符合上述 5 个规则的建树方案。

满足条件的红黑树
由 2 号树形构造的红黑树

 

红黑树化

红黑树化的产生:由于插入顺序导致树的不平衡,因此只需要在插入节点和删除节点时,采取一些措施保证最终的树形满足红黑树的规则。

红黑树化的规则:这里参考了网路上一篇图文并茂的博文来讲解。

 

插入操作

插入的影响:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值