![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Добрый день - возник такой вопрос - как реализовать два алгоритма один рекурсивный , второй обычный без рекурсии.
есть интерфейс interface Node{ List<Node> getChildren(); } interface Tree { List<Node> getAllleafs(final Node rootNode); } Нужно получить все листья дерева (лист это нода у которой нет больше листьев) что то сложно с логикой в 1 час ночи. помогите составить два примера алгоритмов. |
|||
|
||||
| Mirkes |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
С рекурсией алгоритм совершенно простой.
поскольку не понял, что значит получить, решил складывать в коллекцию. ghtlgjkfuf. Одна рекурсивная процедура findLeaves, точнее метод класса Node
Код писал прямо здесь. Так что не проверял. А вот с нерекурсивным поиском по дереву сложнее. А зачем это надо? Для зачета? В принципе это можно сделать с помощью стека, куда складывать еще не проверенных детишек. Писать не буду, а идея такова. Создаем массив стека (Например ArrayList, Vector и т.д.) Кладем туда корневой узел. Запускаем цикл пока ... Понял, что проще написать в коде
-------------------- Mirkes |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |