これはメインのファイルです:これはクラスBTFunctionあるここで再帰はどのように機能しますか?
public static void main(String[] args) {
BTFunction bt=new BTFunction();
bt.insert(5);
bt.insert(15);
bt.insert(10);
bt.insert(7);
}
:
public class BTFunction {
BTNode root=null;
void insert(int data){
root=BTinsertion(data,root);
}
BTNode BTinsertion(int data,BTNode n){
if(n==null){
n=new BTNode(data);
}
else{
if(n.right==null)
n.right=BTinsertion(data,n.right);
else
n.left=BTinsertion(data,n.left);
}
return n;
}
私は最初の3個の挿入(右と左すなわちルートを)理解が、ときに、新しいです値(つまり7)を挿入すると、関数はどのように機能しますか? 私によれば、insert(7)が実装されている場合、現在は両方ともnullではないroot.nextとroot.rightを検索するだけです。だから、何もするべきではありません。
再帰的なプロセスを説明できますか?具体的には、値を追加すると説明できますか?
n
がnullではないので、我々は他のブロックに移動: