21
Ноя
2020

Обход и добавление в БДП

Изучаю структуры данных и пытаюсь создать бинарное дерево поиска с дженериками и пройтись по нему в глубину in order. Когда вызываю метод inOrder получаю 8 =/ Сам метод я взяла из учебника по структурам данных.

В чем мои ошибки? Заранее спасибо за объяснения.

  public static void main(String[] args) {
        Tree<Integer> tree = new Tree<Integer>();
        Node<Integer> root = new Node<>(8);
        tree.add(3);
        tree.add(10);
        tree.add(1);
        tree.add(6);
        tree.add(14);
       

        tree.inOrder(root);// Получаю 8
    }
}
public class Tree<T extends Comparable<T>> {
    private Node<T> root;


    public void add(T data) {
        Node<T> node = new Node<>(data);
        if (root == null) {
            root = node;
        } else doInsert(root, node);

    }

    public void doInsert(Node<T> root, Node<T> node) {
        if (node.data.compareTo(root.data) < 0) {
            if (root.left == null) {
                root.left = node;
            } else doInsert(root.left, node);
        } else if (root.right == null) {
            root.right = node;
        } else doInsert(root.right, node);

    }
 public void inOrder(Node<T> root) {
        if (root != null) {
            inOrder(root.left);
            System.out.print(root.data + " ");
            inOrder(root.right);
        }
    }
class Node<T> {
    Node<T> left;
    Node<T> right;
    T data;

    public Node(T data) {
        this.data = data;

    }
}

Источник: https://ru.stackoverflow.com/questions/1207805/%D0%9E%D0%B1%D1%85%D0%BE%D0%B4-%D0%B8-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%91%D0%94%D0%9F

Тебе может это понравится...

Добавить комментарий