请教一个红黑树相关的问题

2020-04-23 18:29:43 +08:00
 AAASUKA

这是算法导论的代码,我照着写成 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)
1126 次点击
所在节点    算法
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX