【发布时间】:2022-12-16 07:33:31
【问题描述】:
我一直在学习并致力于实现红黑树数据结构。我正在关注this关于红黑树删除示例的文章,并查看示例 5:
当我将相同的节点插入我的树时,我得到以下信息:
我知道红黑树不是唯一的(我认为),因此上述两棵树都是有效的,因为它们不违反任何属性。
在示例文章中,删除节点 1 后,他们得到以下内容:
但是在我的代码中删除节点 1 之后,我得到以下信息:
因为在我的例子中,节点 1 是红色的,所以我没有调用我的 delete_fix 函数,它负责重新安排树等。我所遵循的删除算法只是声明如果要删除的节点是黑色的,则调用 delete_fix 函数。
然而,在将我的树与示例文章中的树进行比较后,我可以看到我的树并没有完全优化。它仍然遵循红黑树的规则。这是红黑树的预期还是我在这里遗漏了什么?
【问题讨论】:
-
这是意料之中的。您在这里没有遗漏任何东西。
标签: data-structures tree binary-tree binary-search-tree red-black-tree