gpt4 book ai didi

java - 似乎无法插入二叉搜索树

转载 作者:行者123 更新时间:2023-11-29 04:39:06 25 4
gpt4 key购买 nike

当我在二叉搜索树中实现插入和打印时。它只打印出第一个根节点。请帮助为什么?二叉搜索树的基本实现,从学习它们开始,然后转向更高级的东西,但在第一步时绊倒了。看起来它没有将节点添加到根节点。

class bstrees{
class Node
{
int data;
Node left;
Node right;
public Node(int data)
{
this.data=data;
this.left=null;
this.right=null;
}
}
Node root;
bstrees(){root=null;}

public void insert(int data){
root=insert_node(root,data);
}
public Node insert_node(Node r,int n){
if(r==null){
Node n1=new Node(n);
//root=n1;
return n1 ;
}
else if(root.data<=n){
insert_node(root.right,n);
}
else{
insert_node(root.left,n);
}
return r;
}
public void print_t(){
print_t(root);
}
private void print_t(Node r){
//System.out.println(r);
if(r!=null){

// System.out.println(r.left);
// System.out.println(r.right);
print_t(r.left);
System.out.println(r.data+" ");
print_t(r.right);
}

}


}
public class BST_prac {
public static void main(String[] args) {
// TODO Auto-generated method stub
bstrees b1=new bstrees();
b1.insert(5);
b1.insert(1);
b1.print_t();

}

}

它只打印出 5。

最佳答案

在将值 1 插入树的调用中,对 insert_node(root.left,n) 的调用创建了一个新节点,但没有对此的引用新创建的节点被存储,这意味着实际上树本身没有改变。引用应该存放在新建节点的父节点中;将节点插入右子树也是如此。

关于java - 似乎无法插入二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39991801/

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