Я новичок в бинарных деревьях и работает над методом добавления простой игры. В настоящее время метод заменяет дочерние узлы корневого узла каждый раз, когда я добавляю новые узлы. Как я могу заставить его добавлять новые узлы по всему дереву вместо того, чтобы просто заменять первые два дочерних узла корневого узла? Это то, что у меня есть до сих пор:Как я могу получить метод добавления BST для добавления узлов за первые два дочерних узла?
public boolean add(User friend) {
User node = friend;
if (root == null) {
root = node;
return true;
}
if (node.key() < root.key()) {
if(root.left == null) {
root.setLeft(node);
}
} else if (node.key() > root.key()) {
if(root.getRight() == null) {
root.setRight(node);
}
}
return true;
}
Используйте [это] (http://algorithms.tutorialhorizon.com/binary-search-tree-complete-implementation/) в качестве руководства. –
Кажется, что это дерево является частью класса 'User'. Скорее всего, лучше создать отдельный класс 'BinarySearchTree', и ваш класс' User' будет иметь поле 'private BinarySearchTree друзей'. Пользователь User :: beFriend' просто называет 'friends.add'. –
Oebele
@ VladK. Это руководство объясняет деревья хорошо. – girthquake