最近,我正在学习左倾红黑树。我红了this来帮助我学习。但是,我无法在删除操作中获得代码的含义,它们是:
if (isRed(h.left))h = rotateRight(h);
我找不到一个很好的例子来帮助我使用这段代码。
任何人都可以帮我解释代码应该存在的原因(一个小例子好多了)?
答案 0 :(得分:0)
PDF的第7页包含完整功能。基本上它正在做什么,如果该行是“红色”(意味着它被添加以强制树为LLRBT),则将左子节点旋转到它的位置。
A
/ \
B C
如果我删除A,我会将B旋转到它的位置:
B
\
C