if right[x] != NIL
then return TREE-MINIMUM(right[x])
y<-p[x]
while y!= NIL and x = right[y]
do x<-y
y<-p[y]
return y
我知道“如果正确[x]!= NIL然后返回tree-min”意味着我已将其翻译为:
if(p->RChild) return fMinValue(p->RChild);//returns the min value of the sub-tree starting at the right child node of p
其余的我无法理解。
答案 0 :(得分:2)
<-
很可能是赋值运算符。 p
我猜是父母。你还有什么困惑?
答案 1 :(得分:2)
这里p[]
几乎肯定意味着“父节点”。您正在处理节点x
,因此p[x]
表示“当前节点的父节点”(就像right[x]
表示“当前节点的右手子节点”)。
<-
表示法是赋值。与c-like语言中的=
类似。
此处提供的算法的第二部分向上走树,寻找您第一次提升左侧链接而不是右侧链接。但我不确定我是否会将此描述为后续功能。