gpt4 book ai didi

java - 如何替换现有节点中的信息而不丢失其子节点?

转载 作者:行者123 更新时间:2023-12-02 05:34:24 25 4
gpt4 key购买 nike

所以我实现了一个二叉搜索树,并且管理了一个有效的插入方法。所有节点都包含有关类(class)的信息,包括类(class)代码、类(class)名称和类(class)学分。假设我想插入一个具有相同 key (类(class)代码)但不同类(class)学分的新节点,那么它不会相加。看来我的树失去了我更改的节点的子节点。

在键相等的情况下,我尝试写“节点”而不是“根”,但它会像我之前所说的那样丢失子节点。

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;
}
}

最佳答案

只需替换当前节点的courseNamecourseCredits即可:

...
if (root==null) {
root.setCourseName(node.getCourseName());
root.setCourseCredits(node.getCourceCredits());
return node;
} else {
...
} else {
root.setCourseName(node.getCourseName());
root.setCourseCredits(node.getCourceCredits());
return root;
}
...

关于java - 如何替换现有节点中的信息而不丢失其子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56183320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com