Как мне спуститься по двоичному дереву с помощью вопросов? - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь настроить двоичное дерево для выполнения следующих действий:

  • Если я напишу Y, будет напечатан левый потомок. Если я напишу N, это напечатает правильного ребенка.

    UI.println("Is it true: " + node + "(Y/N)");
    
  • Если это просто листовой узел, он просто напишет ответ.

    UI.println(node);
    

1 Ответ

0 голосов
/ 11 октября 2019

Ваш вопрос немного расплывчат, но в целом вы делаете это следующим образом: Напишите функцию, которая принимает в качестве аргумента узел из дерева и задает вопрос. Если узел является листом, то функция печатает узел и возвращает. В противном случае он задает вопрос, и в зависимости от ответа функция рекурсивно вызывает себя либо слева, либо справа от узла.

Изначально функция вызывается с корневым узлом дерева в качестве аргумента.

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

...