我正在尝试编写自己的二叉树。尽管我可以找到许多二叉搜索树的示例,但我还是决定自己编写。
到目前为止,我已经做到了这一点:
public class bTree {
bnode root=null;
void add(int val){
bnode newnode= new bnode(val);
bnode curr = this.root;
bnode parent = null;
if(this.root == null){
this.root = newnode;
System.out.println("Inserted at root \t"+newnode.value);
}
else{
while( curr != null){
System.out.println("Current Left and Right\t"+curr.left+"\t"+curr.right);
if(curr.left == null){
curr = curr.left;
curr = newnode;
System.out.println("Inserted Left\t" +newnode.value);
return;
}
if(curr.right == null){
curr = curr.right;
curr = newnode;
System.out.println("Inserted Right\t" +newnode.value);
return;
}
}
}
}
当我尝试将值添加到二叉树时,只有根能够添加值。我正在慢慢尝试编写其余的代码,它发现左孩子已满并回溯和所有情况。我的问题是为什么它甚至不向最左边的孩子添加下一个值(在第二次调用它时)。如果您不给我代码,我将非常感激,我想学习。