В среде IntelliJ IDEA Community Edition надо создать проект HW1.
В проекте:
Надо создать Java-класс «Дерево». Для него надо создать вспомогательный класс «Узел дерева».
Класс «Узел дерева» должен иметь методы:
· Получить id
· Получить родительский узел
· Получить список всех нижележащих (дочерних) узлов, соединенных с ним переходом
· Является ли узел листом (т.е. узлом, у которого нет дочерних узлов)
· Является ли узел корнем (т.е. узлом, у которого нет родительских узлов)
Для этого в классе «Узел дерева» можно, например, завести следующие переменные:
· id
· список дочерних узлов (т.е. ссылок на дочерние узлы)
· родительский узел (т.е. ссылка на родительский узел)
В классе «Дерево» должна быть ссылка на корень и следующие методы:
· получить корень
· получить список всех узлов
· получить список всех листов дерева
Надо разработать функцию, которая читает файл input.csv и строит по содержащимся в нем данным список деревьев (т.е. список объектов класса «Дерево»).
Файл содержит строки, каждая строка состоит из двух натуральных чисел, разделенных запятой: «id узла», «id родительского узла». Если узел является корнем дерева, то в нем «id узла» совпадает с «id родительского узла».
Надо разработать функцию, которая для списка деревьев находит дерево, в котором максимальное количество листьев. Если таких деревьев несколько, то функция должна сгенерировать исключение.
В классе Main функция public static void main должна прочитать файл input.csv, создать по данным этого файла список деревьев, перебрать все деревья, вызвать для каждого дерева метод, возвращающий количество листов. Таким образом надо определить id дерева (т.е. id корневого узла дерева), содержащего максимальное количество листов. Далее надо создать файл output.csv, в который надо записать два числа (через запятую): id найденного дерева и количество его листов. Если деревьев с максимальным количеством листов в списке больше одного, то надо записать в файл два нуля (через запятую).
В качестве результата выполнения задания надо загрузить содержащий проект zip-архив в систему в данное задание.
| Гарантия на работу | 1 год |
| Средний балл | 4.52 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |