0

私たちの割り当てから、BTreeクラスにメソッドを記述したいという質問があります。パラメータとして整数を取り、それをツリーに追加する必要があります。だから私はそれをしました:

public void add(int v){
    if(root == null){
        root = new BNode(v);
    }
    else{
        add(v, root);
    }
}
public void add(int v, BNode branch){
    if(v == branch.getVal()){
        return;
    }
    if(v<branch.getVal()){
        if(branch.getLeft() == null){
            branch.setLeft(new BNode(v));
        }
        else{
            add(v, branch.getLeft());
        }
    }
    else{
        if(branch.getRight() == null){
            branch.setRight(new BNode(v));
        }
        else{
            add(v, branch.getRight());
        }
    }
}

しかし、メソッドのパラメーターが単なるBNodeである場合、どのように追加するのでしょうか。それはただですか:

public void add(BNode b){
    add(BNode.getVal());
}

これを行うためのより効率的な方法はありませんか?どんな助けでもいただければ幸いです。

4

1 に答える 1

1

はい、パラメータタイプを別の方法で変更します。メソッドが期待しないようにしintますBNode。したがって、これを変更します。

public void add(int v, BNode branch) 

public void add(BNode v, BNode branch)

と変更:

public void add(int v)

public void add(BNode v)

次に、別のメソッドを作成します。

public void add(int b){
    add(new BNode(b));
}

このようにして、メモリ内に1つの余分なオブジェクトを作成することを回避します。

于 2013-03-27T01:08:16.950 に答える