这个伪代码是什么意思? - 二叉搜索树后继功能

时间:2010-02-21 04:50:55

标签: binary-search-tree

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

其余的我无法理解。

2 个答案:

答案 0 :(得分:2)

<-很可能是赋值运算符。 p我猜是父母。你还有什么困惑?

答案 1 :(得分:2)

这里p[]几乎肯定意味着“父节点”。您正在处理节点x,因此p[x]表示“当前节点的父节点”(就像right[x]表示“当前节点的右手子节点”)。

<-表示法是赋值。与c-like语言中的=类似。

此处提供的算法的第二部分向上走树,寻找您第一次提升左侧链接而不是右侧链接。但我不确定我是否会将此描述为后续功能。