最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

红黑树〜1孩子删除

SEO心得admin39浏览0评论
本文介绍了红黑树〜1孩子删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

红色父节点是否有可能只有一个黑色子节点?我一直在玩红/黑树模拟器在线,我不能设法得到这种情况发生。

这个问题背后的原因是我相信我的代码中有一个不必要的IF ...

if(temp_node-> color == BLACK&& node-> color == RED) { node-> color = BLACK; global_violation = false; }

感谢任何反馈!

请记住,在红/黑树中,所有路径从树的根除去树必须通过相同数量的黑色节点(这是红/黑树不变量之一)。

如果你有一个红色节点 x 与一个黑人 y ,它不能有另一个红色孩子红色节点不能有红色孩子)。

这意味着通过 x 到缺少的孩子的路径将通过比 x ,然后到 y 的路径至少少一个黑色节点,然后离开树从那里,打破红/黑树不变式。

Is it ever possible for a red parent node to have just ONE black child node? I have been playing around with the Red/Black Tree simulator online and I can't manage to get a case of this to happen.

The reason behind asking this is I believe I have an unnecessary IF in my code...

if (temp_node->color == BLACK && node->color == RED) { node->color = BLACK; global_violation = false; }

Thanks for any Feedback!!

解决方案

No, this isn't possible.

Remember, that in a red/black tree, all paths from the root of the tree off of the tree must pass through the same number of black nodes (that's one of the red/black tree invariants).

If you have a red node x with one black child y, it cannot have another red child (since that breaks the red/black invariant that red nodes can't have red children).

This means that a path through x to the missing child will pass through at least one fewer black node than the path through x, then to y, and then off the tree from there, breaking the red/black tree invariants.

发布评论

评论列表(0)

  1. 暂无评论