exponenta event banner

depo2ind

Глубина узла - положение по индексу узла

Синтаксис

N = depo2ind(ORD,[D P])

Описание

depo2ind является утилитой управления деревом.

Для дерева порядка ORD, N = depo2ind(ORD,[D P]) вычисляет индексы N узлов, чьи глубины и положения закодированы в [D,P].

Узлы нумеруются слева направо и сверху вниз. Индекс корня равен 0.

D и P являются векторами столбцов. Значения глубин D и положений P должны быть такими, чтобы D ≥0 и 0≤ PORDD-1.

Выходные индексы N таковы, что 0 ≤ N < (ORDmax (D) -1 )/ ORD-1.

Обратите внимание, что для вектора столбца X, у нас есть depo2ind(O,X) = X.

Примеры

свернуть все

Создайте двоичное дерево глубины 3. Постройте график дерева.

ord = 2;
t = ntree(ord,3);
plot(t)

Figure contains an axes and an object of type uimenu. The axes with title Tree Decomposition contains 29 objects of type line, text.

Объединение узлов индексов 4 и 5. Постройте график нового дерева.

t = nodejoin(t,5);
t = nodejoin(t,4);
figure
plot(t)

Figure contains an axes and an object of type uimenu. The axes with title Tree Decomposition contains 21 objects of type line, text.

Список глубинных позиций узлов дерева.

aln_depo = allnodes(t,'deppos')
aln_depo = 11×2

     0     0
     1     0
     1     1
     2     0
     2     1
     2     2
     2     3
     3     0
     3     1
     3     6
      ⋮

Преобразование положения глубины в индекс.

aln_ind = depo2ind(ord,aln_depo)
aln_ind = 11×1

     0
     1
     2
     3
     4
     5
     6
     7
     8
    13
      ⋮

См. также

Представлен до R2006a