2016-11-01 12 views
0

Так что я знаю, для бинарного дерева общего способ предзаказа пройти это как этотобход из квадрадерева

void displayPreOrder(TreeNode node) 
{ 
    if(node != null) 
    { 
     displayPreorder(node.left); 
     displayPreorder(node.right); 
     System.out.println(node.value); 
    } 
} 

Но у меня возникают проблемы, пытаясь обернуть мою голову вокруг обхода в виде квадрадерева , Я пытался найти некоторые ресурсы, но оставил с пустыми руками. Любой намек?

ответ

2

Код, который вы отправили для сообщения обращение по пути двоичного дерева. Для квадранта вам просто нужно посетить всех детей, а не просто слева и справа.

Для простоты я буду считать, что TreeNode определяет метод children(), который возвращает итератор или List детей узла в некотором хорошо определенном порядке. Если это не доступно, просто перейдите через детей, используя любой механизм.

void displayPreOrder(TreeNode node) 
{ 
    if(node != null) 
    { 
     // visit the root first for pre-order 
     System.out.println(node.value); 
     for (TreeNode child : node.children()) { 
      displayPreorder(child) 
     } 
    } 
} 

(постскриптум Это работает для бинарных деревьев, а также, учитывая правильный механизм итерации.)

+0

Спасибо так много! – trevordavies095

 Смежные вопросы

  • Нет связанных вопросов^_^