Изучаю структуры данных и пытаюсь создать бинарное дерево поиска с дженериками и пройтись по нему в глубину 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;
}
}
Проблема в том, что узел root
определяемый в
Node<Integer> root = new Node<>(8);
никак не сзязан с деревом tree
и сам по себе не имеет никаких детей, а метод void inOrder(Node<T> root)
выводит структуру узла, который ему передали. По-этому выводится только значение из самого узла.
Нужно чтобы первый вызов inOrder
брал root
из самого объекта дерева.
Вероятно, задумка была такая
public void inOrder() {
inOrder(this.root);
}
private void inOrder(Node<T> root) {
if (root != null) {
inOrder(root.left);
System.out.print(root.data + " ");
inOrder(root.right);
}
}
И вызывать потом так:
Tree<Integer> tree = new Tree<Integer>();
tree.add(8);
tree.add(3);
// добавляем тут еще элементы
tree.inOrder();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
недавно начал изучать javaЗадание: сделать игру, в которой пользователю нужно угадать цифру от 0 до 100 + в конце сделать счетчик попыток
На макете видно эллипс слева и прямоугольник справаТак вот вопрос: как задать два бэкграунда через CSS, чтобы всё хорошо работало?
Есть у меня такой HTML: Сейчас там расположена 1 строка на 13 элементов, таких строк будет 6