首页 > 算法导论P167页关于红黑树插入的伪代码

算法导论P167页关于红黑树插入的伪代码

如果红黑树是这种形式的

最下面的红节点表示新插入的节点,请问:这个过程和伪代码是如何对应的?另外,我看伪代码执行了color[y]=RED的情形后,应该回到while(color[p[z]]==Red)那个地方,我看伪码怎么要执行12-14行呢?这是不对的啊??

问题2:针对这个代码,谁能帮我描述一下代码的执行过程?我先说一下我的思路:y=right[p[p[z]]],此时的y为哨兵节点,color[y]=BLACK,请问如果12-14行包含在第二个else if(z=right[p[z]])中时,程序如何执行到12-14行?


if color[y]=RED后面的then是if正确后执行的,12-14行是与这个if对应的else(即它是BLACK), 所以伪代码没有执行到12-14行,而是进行另一个while循环,也许是刚好翻页了,缩进看的不是很清楚。 在翻页后可以看到的那个else是跟第一个if对应的,而12-14行是和else if z = right[p[z]]这一行的else对应的,是和这个if相同缩进的。 你也可以详细看看后面的情形1,2,3,就理解了具体步骤,而不用管他这个伪代码到底是什么情况。

【热门文章】
【热门文章】