Что означает этот псевдокод?- Функция-преемник бинарного дерева поиска

StackOverflow https://stackoverflow.com/questions/2304809

  •  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-подобных языках.

Вторая часть представленного здесь алгоритма проходит вверх по дереву, ища, когда вы впервые поднялись по левой ссылке вместо правой.Но я не уверен, что я бы описал это как функцию-преемник.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top