gpt4 book ai didi

java - 如何将BNode添加到二叉搜索树中?

转载 作者:行者123 更新时间:2023-12-01 14:44:00 25 4
gpt4 key购买 nike

根据我们的作业,有一个问题要求我们在 BTree 类中编写一个方法。它必须接受一个整数作为参数,然后将其添加到树中。所以我这样做了:

public void add(int v){
if(root == null){
root = new BNode(v);
}
else{
add(v, root);
}
}
public void add(int v, BNode branch){
if(v == branch.getVal()){
return;
}
if(v<branch.getVal()){
if(branch.getLeft() == null){
branch.setLeft(new BNode(v));
}
else{
add(v, branch.getLeft());
}
}
else{
if(branch.getRight() == null){
branch.setRight(new BNode(v));
}
else{
add(v, branch.getRight());
}
}
}

但是我想知道当方法的参数只是一个BNode时,如何添加?难道只是:

public void add(BNode b){
add(BNode.getVal());
}

没有更有效的方法吗?任何帮助将不胜感激。

最佳答案

是的,以另一种方式改变你的参数类型:让你的方法不期望一个int而是一个BNode。所以改变这个:

public void add(int v, BNode branch) 

public void add(BNode v, BNode branch)

并更改:

public void add(int v)

public void add(BNode v)

然后创建一个不同的方法:

public void add(int b){
add(new BNode(b));
}

这样您就可以避免在内存中创建一个额外的对象。

关于java - 如何将BNode添加到二叉搜索树中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15650240/

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