Преодер прохождения Btree - PullRequest
2 голосов
/ 11 мая 2010

Я пытаюсь выяснить, как сделать предварительный обход Btree. Я знаю, что обычно обход по предварительному заказу работает так:

preorder(node)
{
print value in node
preorder(left child)
preorder(right child)
}

Что меня смущает, так это то, как заставить это работать с Btree, поскольку в каждом узле есть несколько значений и несколько дочерних указателей. При печати значений все значения в узле печатаются до того, как они опустятся в левый потомок?

Каждый узел выглядит так:

child1 value1 child2 value2 child3 value3 child4

Кроме того, зачем кому-либо хотеть сделать предварительный обход Btree, так как обход по порядку - это то, что будет отображать значения в порядке возрастания?

1 Ответ

2 голосов
/ 11 мая 2010

Напечатайте все значения в текущем узле в некотором определенном порядке (который на самом деле зависит от вас, хотя слева направо - разумное значение по умолчанию), затем посетите каждый дочерний узел (опять же, порядок зависит от вас) .

...