红黑树的删除情况分析是多余的?

靠Qt养活全家的高帅富 2016-09-12 07:40:08
尝试了半天上传图,一直没成功,只能文字描述了。

太细节我就不多说了,大概说下。红黑树删除节点是先按照二叉树的删除方式,把前驱/后驱的内容拷贝到需要删除的节点,然后删除前驱/后驱。相当于转换成了删除只有一个儿子节点的情况。一下被删除的节点为N,儿子为S。

然后情况分析的话,最复杂的一种是N和S都是黑色。分析了一大堆,维基和算导里都有。

可是这种情况根本不可能出现啊。因为N只有一个孩子,另外一个分支就直接是NIL了,如果N是黑的,S只可能是红的啊,不然N-S这一路总是比N-NIL这一路要多出来一个黑色。

唯一可能的情况是N是红的,S是黑的。。。

我哪理解错了吗?还是红黑树的删除理论确实有问题?
...全文
184 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2016-09-20
  • 打赏
  • 举报
回复
它会递归删下去的,递归下去以后就不一定只有1个孩子了。

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧