В моем ответе answer на this я использовал две формулы, к которым я пришел специальными средствами, и я нахожусь в потеря для простого объяснения того, почему эти формулы работают. Здесь проблема в полном объеме:Интуитивный вывод формул для нахождения i-го дочернего узла узла в полном дереве с обходным номером
Рассмотрим perfect или полное K -ичного дерево высоты H, где каждый узел помечаются их рангом в ширину-первых обход, и его сопряженное, где каждый узел помечены в глубине-первом порядке. Ниже приведен пример с К = 2, H = 2:
_ 0 _ _ 0 _
/ \ / \
1 2 1 4
/\ /\ /\ /\
3 4 5 6 2 3 5 6
Для BF-упорядоченных дерева, я -м дочерним узлом N на глубине D определяется по формуле:
K*N + 1 + i
Для DF-упорядоченного дерева, I -м дочерним узлом N на глубине D определяется по формуле:
N + 1 + i*step, where step = (K^(H - D) - 1)/(K - 1)
Что такое интуитивное объяснение этих формул?
Формула, упорядоченная по BF, имеет смысл для меня, когда вы смотрите на любой нарисованный вручную пример, но я не могу сказать словами, почему он работает. В DF-упорядоченном случае, лучшее, что можно придумать это:
Для узла N на глубине D в ДФС-нумерованный К -ичный дерева высоты H , его первый ребенок - это просто N + 1, потому что это следующий узел, который нужно посетить в первом прохождении по глубине. Второй ребенок N будут приходить непосредственно после посещения весь суб-дерево с корнем в первого ребенка (N + 1), который сам по себе полный К -ичный дерево высоты
H - (D + 1)
. Размер любого полного, K-дерева определяется суммой конечной геометрической серии, как описано here. Размер указанного поддерева - это расстояние между первым и вторым детьми и, фактически, это то же расстояние между всеми братьями и сестрами, поскольку каждый из их поддеревьев имеет одинаковый размер. Если мы называем это расстояниеstep
, то:первого ребенком является
N + 1
второго ребенкаN + 1 + step
третьего ребенкаN + 1 + step + step
... и так далее.
Может ли кто-нибудь дать лучшее объяснение того, как и почему эти формулы работают?
Это, вероятно, лучшее совпадение для math.stackexchange.com или, возможно, cs.stackexchange.com, оба из которых позволяют mathjax, в отличие от этого сайта. – rici