红黑树理解-插入删除


红黑树的概念要是不联系234的话记忆还是比较混乱的。方法很简单就是把红节点看成和它的父节点同层。但是好像在处理删除的时候234树的作用没有那么大。

网上的资料里2-3-4树都为B树但是《数据结构与算法分析》一书中该树是B+树。

然后在这里写的时候用到的是下文的资料
http://blog.csdn.net/v_july_v/article/details/6105630
从 【三、红黑树的插入】 开始


具体情况

插入

这里15应该是右子树

这里写图片描述

这里写图片描述

对应于234树
(圈算红结点)
(这白平衡orz)
这里写图片描述


删除

这篇文章里二重黑色的意思是,在计算这条支路的黑节点数量的时候它算两次。

那么对于

a)当前节点是红+黑色 解法,直接把当前节点染成黑色,结束此时红黑树性质全部恢复。 b)当前节点是黑+黑且是根节点,
解法:什么都不做,结束。
这两句应该比较好理解了。

后面的几种删除修复情况都是在对双重黑节点(N)进行调整。
红黑树删除的时候一开始的N节点应该都是NIL。在我的理解里……大概的解释了为什么感觉只有红黑树特别的强调了NIL节点。

感觉比较神奇的是红黑树的删除的第一步(删除节点、调整数值)当作二叉树来理解会比较容易,而在后面的调整其实我感觉我还没发很清楚的理解……

删除修复情况1:ab比其他少1
删除修复情况2:abcdef相同
删除修复情况3:cd少1
删除修复情况4:ab少1

比如2中调整的时候如果B是红色下一步就可以直接把它变成黑色。如果是红色需要继续向上调整。
(这么想来234树的删除也并没有找到很好的解释……不过想想就觉得想出这种结构的人好厉害哇~!)

转载于:https://www.cnblogs.com/BirdCage/p/9974076.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值