0

演習として、独自の を実装してみTreeSetます。add メソッドと remove メソッドをコーディングする前に、contains から始める方が簡単に思えますが、行き詰っています。

私のツリーは と で構成されていNodeますLeaf:

static class Leaf<E extends Comparable<E>> implements Tree<E> {

                 //stuff
        @Override
        public boolean contains() {
           return false;
        }

}

Nodeクラスは次のとおりです。

static class Node<E extends Comparable<E>> implements Tree<E> {

    private final E value;
    private Tree<E> left;
    private Tree<E> right;

   //some stuff
   @Override
   public boolean contains(E elem) {
       //here i'm blocked
   }
}

要素を使用してツリーの良い部分 (左または右) を調べるように、ツリーにどのように言うことができますか?

4

2 に答える 2

2

要素を使用してツリーの良い部分 (左または右) を調べるように、ツリーにどのように言うことができますか?

まあ、あなたは使用して比較elemする必要があります。結果が 0 の場合、値はすでに等しいので、 を返すことができます。valuecompareTotrue

elemが より小さい場合はvalueに再帰できleft.contains(elem)、そうでない場合は に再帰できますright.contains(elem)leftまたはright値が単なるリーフの場合は が返されfalse、そうでない場合は適切に再帰されます。

于 2013-05-08T11:39:12.043 に答える