Что означает этот псевдокод?- Функция-преемник бинарного дерева поиска
-
21-09-2019 - |
Вопрос
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
Я знаю, что означает "if right[x] != NIL then return 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
Остальное мне трудно понять.
Решение
<-
скорее всего, это оператор присваивания. p
Я бы предположил, что это родитель.Что еще вас смущает?
Другие советы
Здесь p[]
почти наверняка означает "родительский узел".Вы работаете над узлом x
, так что p[x]
означает "родительский элемент текущего узла" (точно так же, как right[x]
означает "правый потомок текущего узла").
В <-
обозначение - это присвоение.Нравится =
на c-подобных языках.
Вторая часть представленного здесь алгоритма проходит вверх по дереву, ища, когда вы впервые поднялись по левой ссылке вместо правой.Но я не уверен, что я бы описал это как функцию-преемник.
Не связан с StackOverflow