Как смещается псевдокод биномиального дерева?

То, что я не могу понять здесь, - то, как заявления были отступлены. Нормально, если и иначе, если должны быть одинаково отступ. Я хочу понять, как здесь они отступили. Везде объединение кода биномиального дерева имеет отступ только таким образом.
Мое главное сомнение в приведенном ниже коде заключается в том, что Binomial-Link(x,next-x) находится внутри последнего или нет?
И находится ли x:= next-x (в следующей строке) только под кодом выполнения?
Пожалуйста, объясните теорию позади этого тоже, пожалуйста. Спасибо:)

while next-x <> NIL
  do if (degree[x] <> degree[next-x]) or (sibling[next-x] <> NIL and degree[sibling[next-x]] = degree[x])
        then prev-x := x
             x := next-x
        else if key[x] <= key[next-x]
             then sibling[x] := sibling[next-x]
                  Binomial-Link(next-x,x)
             else if prev-x = NIL
                     then head[H] = next-x
                     else sibling[prev-x] := next-x
                  Binomial-Link(x,next-x)
                  x := next-x
     next-x := sibling[x]
return H

0 ответов

Другие вопросы по тегам