Итак, я реализовал бинарное дерево поиска и управлял методом вставки, который работает. Все узлы содержат информацию о курсах с кодом курса, именем курса и кредитными курсами.
Скажем, я хочу вставить новый узел, который имеет тот же ключ (код курса), но другие кредиты, но он не складывается. Кажется, что мое дерево теряет детей узла, который я изменил.
Я пытался написать «узел» вместо «корень» для случая, когда ключи равны, но потом он потерял дочерние элементы, как я уже говорил.
public void insert(String courseCode, String courseName, double courseCredits) {
BSTNode node = new BSTNode(courseCode, courseName, courseCredits);
root = insert(root, node);
}
private BSTNode insert(BSTNode root, BSTNode node) {
if (root==null) {
return node;
} else {
String currentKey = root.getCourseCode();
BSTNode left = root.getLeftChild();
BSTNode right = root.getRightChild();
if (node.getCourseCode().compareTo(currentKey) < 0) {
left = insert(left, node);
} else if (node.getCourseCode().compareTo(currentKey) > 0) {
right = insert(right, node); //Ändrade "left" till "right" i parentesen.
} else {
return root;
}
root.setChildren(left, right);
return root;
}
}