Функция PrintInOrder бинарного дерева - PullRequest
0 голосов
/ 08 апреля 2020

Дано:

public void printInorder() {
    printInorder(root);
}

private void printInorder(Node<E> n) {
    ...
}
private static class Node<E> {
    private E data;
    private Node<E> left;
    private Node<E> right;

    private Node(E data) {
         data = data;
         left = right = null;
    }

Моя задача - завершить sh приватный метод Inorder для работы с рекурсией. То, что я сделал до сих пор:

private void printInorder(Node<E> n) {
if (n != null) {
    printInorder(n.left);
    System.out.println(n.data);
    printInorder(n.right);

Какой правильный ответ, я просто не понимаю точно, почему это правильно.

Я понимаю, что если вы введете printInorder (root) в метод publi c. Он будет go закрытым методом и сначала напечатает левую часть, затем «System.out.println» все данные. Тогда он будет go на правой стороне, но как распечатать данные на правой стороне?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 08 апреля 2020

Объяснил схему рекурсии ниже. Надеюсь, помогает понять правильную часть узла.

printInorder(1) 
    printInorder(2) //left node of 1
        printInorder(4) //left node of 2
            printInorder(null) // left node of 4. does not print anything. 
        System.out.println(4);
        printInorder(null); // right node of 4 
    System.out.println(2);
    printInorder(5); //referring right node of 2
        printInorder(null); // left node of 5 . No print here
    System.out.println(5);
    printInorder(null); // right node of 5. No print here
System.out.println(1);
    printInorder(3); // right node of 1
        printInorder(6) // left node of 6
            printInorder(null) // left node of 3. does no print here
        System.out.println(6);
        printInorder(null); // right node of 6 . No print here
    System.out.println(3);
        printInorder(7); //referring right node of 3
            printInorder(null); // left node of 7 . No print here
        System.out.println(7);
        printInorder(null); // right node of 7. No print here   
...