我遇到了二叉搜索树插入的问题。我已经尝试过递归和迭代方法,但是目前的实现方式最好只能说"勉强能用"。对于一个大小为31609且高度为35的树,插入需要约100秒,而应该要快很多,只需要约1秒钟。请问有人可以给我一些提示,我可能做错了什么吗?
以下是我目前为止所做的代码(不包含重复项的插入):
以下是我目前为止所做的代码(不包含重复项的插入):
void insert(int val){
if(this.elem < val){
if(this.right != null){
this.right.insert(val);
}
else{
nodes++;
this.right = new Node(val);
}
}
else if(this.elem > val){
if(this.left != null){
this.left.insert(val);
}
else{
nodes++;
this.left = new Node(val);
}
}
else {
return;
}
}
插入
本身。你能提供有关构造函数的信息吗? - Willem Van Onsem