【发布时间】:2015-04-16 08:25:32
【问题描述】:
我正在研究红黑树,并且正在阅读 Cormen 的“算法简介”一书。现在我正在尝试通过使用书中描述的伪代码 - RB-INSERT-FIXUP(T, z) 来创建编号为 1-10 的红黑树。这是屏幕截图
在我将数字“6”插入树之前,一切都很好。根据伪代码我得到以下结果
正如您所见,所有红黑树要求都已满足,但我很困惑,因为我知道红黑树应该在每个步骤上保持平衡。
我可以用“2”和“4”手动执行“左旋转”程序并更改颜色。在那种情况下,我会得到以下结果,这是适当平衡的
所以我的问题是:
树不平衡可以吗?还是我在插入节点时遗漏了什么?
【问题讨论】:
-
我认为 rb 树的不平衡深度可达 2 log n。你应该检查一下。一棵完美平衡的树的深度大约为 log n。 rb 树中的不平衡性还不足以破坏它对于各种操作的大 O。
标签: algorithm tree binary-tree red-black-tree