这是算法导论的代码,我照着写成 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)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.