Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何在二进制搜索树中插入节点和值?_Java - Fatal编程技术网

在java中如何在二进制搜索树中插入节点和值?

在java中如何在二进制搜索树中插入节点和值?,java,Java,我不熟悉数据结构和二叉树,所以我有点迷路了。我的问题是如何在树本身中插入值 添加一个新节点,如下所示: Node n1 = new Node(); Node n2 = new Node(); n1.setValue(1); n2.setValue(2); n1.setRight(n2); 您希望在开始时传递根目录。您只需重载添加: public void Add(int v) { Add(root, v); } 您需要使用特殊情况,即root==null您只需要显式地检查这种情况

我不熟悉数据结构和二叉树,所以我有点迷路了。我的问题是如何在树本身中插入值

添加一个新节点,如下所示:


Node n1 = new Node();
Node n2 = new Node();
n1.setValue(1);
n2.setValue(2);
n1.setRight(n2);

您希望在开始时传递
根目录。您只需重载
添加

public void Add(int v) {
    Add(root, v);
}

您需要使用特殊情况,即
root==null

您只需要显式地检查这种情况

更新

此外,您还需要添加另一个供公共使用的
add(int v)
方法(您还可以将自己设置为当前
add(Node,int)
private)


这是家庭作业吗?如果是这样,当我做t.setRight(v)时,你应该在Add方法中用[Homegram]标记它;或t.setLeft(v);我得到一个错误,它不能应用于给定的类型,因为v是int,而setRight和setLeft只接受节点参数,所以我如何解决这个问题?明白了。您当前的
Add
方法应该是私有的(因为它将实现细节
Node t
公开)。您应该添加新的
add(intv)
方法。请参阅我的最新答案。
public void Add(int v) {
    if (root == null) {
        // creating root node if it doesn't exist
        root = new Node();
        root.setValue(v);
    } else {
        // adding new element to tree
        Add(root, v);
    }
}