Добрый день. Задача "Создать элементарную структуру дерева". У меня возникли трудности с добавлением элемента, понимаю что возможно нужно как то рекурсивно проходить по дереву. Нужно найти в дереве элемент parent
, если у него нет таких child
, добавить ему входящий child
. Тут root
- это корень дерева.
public boolean add(E parent, E child) {
if (root.eqValue(parent)) { //если наш корень это parent
if (!root.contain(child)) { //и в нем нет такого child, добавляем в него child
root.add(new Node<>(child));
modCount++;
return true;
}
} else {
//если parent не корень, что делать?
}
return false;
}
private Boolean add(Node node, E parent, E child) {
if (node.eqValue(parent)) { // если наш узел это parent
if (!node.contain(child)) { // и в нем нет такого child, добавляем в него child
node.add(new Node<>(child));
modCount++;
return true; // Если добавили - вернем true
} else
return false; // Если нашли, но не добавили - вернем false
} else {
for (Node childNode : node) { // Цикл по всем потомкам
Boolean res = add(childNode, parent, child);
if (res != null) // Если узел нашли
return res; // то выходим
}
// Если попали сюда, то ничего не нашли
return null;
}
}
public boolean add(E parent, E child) {
// Пытаемся добавить в корень, а там как пойдет
Boolean res = add(root, parent, child);
return res != null; // Если элемент был найден, вернем true
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Не получается установить мавен, подскажите пожалуйста, может не правильно что-то делаю? Так же создана папкаm2 по этому пути...
Подскажите, пожалуйста, почему не передаётся объект contact?
Здравствуйте, в интернете так и не смог найти на на такой вопрос ответ: Считываю obj файл, по нему формирую модель, вывожу на экран - все отлично...
Очень понравилась красивая меню в приложении StacExchange которое всплывает снизу когда нажимаешь на кнопку archivements сверхуКак такое же реализовать