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