1. Почему в классе CustomTree нет какого-нибудь поля со списком / мапой / массивом?
Непонятно, куда метод add(String s) должен добавить новое значение. Ну и откуда прочие методы должны брать информацию о размере и пр.
2. По моей простецкой логике, при добавлении элемента мы должны создать новый экземпляр класса Entry<String>, в котором будут прописаны свои собственные поля elementName, parent, leftChild, rightChild..
Но класс Entry<String> по условиям задачи – статический! Значит, экземпляров не будет (в них нет смысла).. И как тогда???
Ниже имеющийся на настоящий момент код, прошедший валидатор (3-ий этап задачи), то есть плясать обязан от него:
pasteBin
Собственно, условие задачи:
1) переопределить метод add(String s) - добавляет элементы дерева, в качестве параметра принимает имя элемента (...)
2) переопределить метод size() - возвращает текущее количество элементов в дереве.
3) реализовать метод getParent(String s) - возвращает имя родителя (...)
swen922
40 уровень
Куда добавлять поля?
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Andrey
4 мая 2018, 04:28
Экземпляры Entry очень даже будут)
Все добавляемые Entry хранятся в памяти. Все дерево завязано на "прародителя" root через поля parent, leftChild, rightChild. Для size() можно завести поле и увеличивать при добавлении и уменьшать при удалении, либо обходить все дерево и считать детишек.
+1
swen922
4 мая 2018, 08:08
Спасибо, про экземпляры понял, сглупил (спутал со статик переменными).
А можно уточнить, пожалуйста: правильно понял, что для хранения дерева имеет смысл завести отдельный List<Entry>? Чтобы было куда складывать экземпляры класса Entry.
Просто в решениях этой задачи на Гите список заводится прямо внутри методов, и это совершенно непонятно: такой список уничтожается с завершением метода. А для хранения данных нужен "внешний" по отношению к методам список, так?
0
Andrey
4 мая 2018, 10:08
Наверное, при желании, можно продумать как будет работать и внешний список, но мне как то сходу тяжеловато это представить. Если получится, напишите потом как удалось)
А списки внутри методов - это скорее всего очереди для обхода дерева, после того как все дерево обошли список пуст, так что его и не жалко.
0
swen922
4 мая 2018, 11:18
Так а где же хранить само дерево, если нет какого-нибудь списка?
Куда класть все созданные экземпляры Entry<> ?
0
Andrey
4 мая 2018, 11:31
В этой задаче мы сами список.
Экземпляры лежат в памяти, ссылки на них у родителя, ссылка на root в поле класса, все)
0
swen922
4 мая 2018, 11:43
аа!.. типа в руте – по 2 экземпляра, а в каждом – еще по 2, и т.д.. Спасибо, понял.
0
RodriguezExpert
4 ноября 2018, 14:15
Тоже именно так понял, что все добавляемые Entry навешиваются на root и хранятся в памяти, и так и сделал, но валидатор не принимает.
Но смотрю, что все остальные делают список и хранят в нем добавляемые ветви.
0