Бинарное дерево - проблемы c find()
При создание бинарного дерева, вышла ошибка, не находятся числа, которые я ранее добавлял. Кроме первого. Это BinaryTree32.java:
public class BinaryTree32 {
element node;
public void add(int number) {
node = addElement(node, number);
}
public int find(int number) {
return findElement(node, number);
}
private element addElement(element root, int number) {
if(root == null) {
return new element(number);
}
if (root.number > number) {
root.right = addElement(root.right, number);
} else if (root.number < number) {
root.left = addElement(root.left, number);
} else {
return root;
}
return root;
}
private int findElement (element root, int number) {
if (root == null) {
return 0;
}
if (number == root.number) {
return 1;
}
return root.number < number
? findElement(root.right, number)
: findElement(root.left, number);
}
class element {
int number;
element right;
element left;
element(int number) {
this.number = number;
right = null;
left = null;
}
}
}
и Main:
public class Main {
public static void main(String[] args) {
BinaryTree32 bd = new BinaryTree32();
bd.add(10);
bd.add(1);
bd.add(9);
bd.add(8);
bd.add(7);
bd.add(18);
bd.add(15);
System.out.println(bd.find(10));
System.out.println(bd.find(1));
System.out.println(bd.find(9));
System.out.println(bd.find(8));
System.out.println(bd.find(7));
System.out.println(bd.find(18));
System.out.println(bd.find(15));
Консоль выводит: 1 0 0 0 0 0 0 Заранее спасибо, за ответ)