这是算法导论的代码,我照着写成 JAVA 有运行错误
是插入以后,修改颜色,旋转的部分
总感觉 9~14 行不太对,是书上错了吗?
NIL,ROOT 设置都没有问题
1 while z.p.color == RED
2 if z.p == z.p.p.left
3 y = z.p.p.right
4 if y.color == RED
5 z.p.color = BLACK
6 y.color = BLACK
7 z.p.p.color = RED
8 z = z.p.p
9 else if z == z.p.right
10 z = z.p
11 LeftRotate(z)
12 z.p.color = BLACK
13 z.p.p.color = RED
14 RightRotate(z.p.p)
15 else //left right 交换的镜像操作
16 root.color = BLACK
我改了 9~14 行,正确了,现在想确认一下是不是书上错了
else
if z == z.p.right
z = z.p
LeftRotate(z)
z.p.color = BLACK
z.p.p.color = RED
RightRotate(z.p.p)