Любое дерево начинается с корня, поэтому не забудь в класс CustomTree добавить поле root типа Entry<String> c модификатором доступа по умолчанию.
Инициируй его в конструкторе CustomTree, имя (elementName) не важно.
Итак, основа дерева создана, пора тебе поработать немного самому.
Вспомним как должно выглядеть наше дерево.
Элементы дерева должны следовать так как показано на картинке:
Необходимо написать методы, которые бы позволили создать такую структуру дерева и проводить операции над ней.
Тебе необходимо:
1) переопределить метод add(String s) - добавляет элементы дерева, в качестве параметра принимает имя элемента (elementName), искать место для вставки начинаем слева направо.
2) переопределить метод size() - возвращает текущее количество элементов в дереве.
3) реализовать метод getParent(String s) - возвращает имя родителя элемента дерева, имя которого было полученного в качестве параметра.
Если необходимо, можешь вводить дополнительные методы и поля, не указанные в задании.
Требования:
В классе CustomTree должно существовать поле root типа Entry.
В классе CustomTree должны быть переопределены методы add(String s) и size().
После добавления N элементов в дерево с помощью метода add, метод size должен возвращать N.
Метод getParent должен возвращать имя родителя для любого элемента дерева.
package com.javarush.task.task20.task2028;
import java.util.List;
public class Solution {
public static void main(String[] args) {
List<String> list = new CustomTree();
}
}
0
Комментарии (7)
популярные
новые
старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Возможно, требуется проверка родителя на нуль
ведь у корня нет родителя, например
а может, нужно выбрать родителя именно первого элемента с именем s, а не последнего.
Ой давно было, но насколько помню дерево неправильно строилось из-за того что в этом участке не поставил else
if (ent.leftChild == null) {
ent.leftChild = entry;
ent.availableToAddLeftChildren = false;
}
if (ent.rightChild == null) {
ent.rightChild = entry;
ent.availableToAddRightChildren = false;
}