/ Решено /
Я фактически прошел ноль. Поскольку он не содержит никакой информации, добавление значений к нему не повлияет на мое дерево, спасибо за ответ!
У нас в Java есть задача создать двоичное дерево, которое может содержать целое число. Мы должны написать функцию вставки, которая по совпадению вставляет целое число в дерево. Я сейчас написал функцию, но почему-то она не добавляет введенные значения.
Мой класс состоит из целого числа "value" и двух ссылок на левую и правую ветви "left" и "right".
Кроме того, я должен написать эту функцию таким образом, чтобы они возвращали void, я знаю, что есть более простые способы.
Итак, на данный момент я уже знаю, что я добираюсь до листа. Тогда это т == ноль. Когда я пытаюсь, то ставлю "t = new CONSTRUCTOR (value, ...)"
это ничего не меняет.
public void insert_in_tree(int i) {
/*Creating random number*/
Random rand = new Random();
int rand_num = rand.nextInt(2);
if(rand_num == 0) {
setLeft(this.left, i);
} else {
setRight(this.right, i);
}
}
... вот код для функции "setLeft" (функция "setRight" такая же, я просто передаю правильное поддерево, когда вызываю его):
void setLeft(IntBinTree t, int value) {
if(t == null) {
t = new IntBinTree(value, null, null);
return;
}
int i = 0;
/*Random number*/
Random rand = new Random();
int rand_num = rand.nextInt(2);
/*Calling either left or right*/
if(rand_num == 0) setLeft(t.left, value);
setRight(t.right, value);
}
Полагаю, ошибка вызывает функцию и затем изменяет локальную переменную "t" вместо использования "this". Однако, так как я передаю ссылку «это», не должно быть никаких проблем с этим, кто-нибудь может обнаружить ошибку?