Я пытаюсь реализовать метод вставки для двоичного дерева сортировки в Java. Каждый раз, когда я запускаю код, вставляя элементы в дерево, ничего не появляется. Не могли бы вы просмотреть мой код, чтобы увидеть, что я делаю неправильно?
public NonEmptyBST(T element) {
_left = new EmptyBST<T>();
_right = new EmptyBST<T>();
_element = element;
}
public BST<T> insert(T element) {
// Your code here
BST<T> root = new NonEmptyBST<T>(_element);
BST<T> newTree = new NonEmptyBST<T>(element);
BST<T> left = _left;
BST<T> right = _right;
if (element == _element || _element == null) {
return newTree;
} else {
if (element.compareTo(_element) < 0) {
if (left == null) {
left = newTree;
return root;
} else {
return left.insert(element);
}
} else {
if (right == null) {
right = newTree;
return root;
} else {
return right.insert(element);
}
}
}
}
}
Это то, что входит в мою основную функцию, которая была предоставлена мне для тестирования моего кода.
public class Main {
public static void main(String[] args) {
BST<Integer> bst = new NonEmptyBST<Integer>(5);
bst = bst.insert(4);
bst = bst.insert(7);
bst = bst.insert(1);
printDepthFirstInOrder(bst);
}
// Prints the tree in depth first in-order traversal
static void printDepthFirstInOrder(BST<Integer> tree) {
if (tree.isEmpty()) {
return;
}
printDepthFirstInOrder(tree.getLeft());
System.out.print(tree.getElement().toString() + " ");
printDepthFirstInOrder(tree.getRight());
}
}