4

これは、私が試みている二分探索木に関する過去の試験論文です。これらのいずれかを構築することができないため、出力が正しいかどうかを確認する方法がありません。

質問はタイトルにあります

class Tree{
    Tree left;
    Tree right;
    int key;

   public static int span(Tree tree)
   {
        if ( tree == null ){
             return null;
        }

        if( tree.left != null)
             int min = span(tree.left);
         }

        if( tree.right != null){
             int max = span(tree.right);
         }
         return max - min;
    }
}

誰かが私が5/5マークを取得するために何を変更する必要があるかを提案できますか:D-私たちがしなければならない唯一のことはspanメソッドを書くことです、ヘッダーは私たちのために与えられました。

4

1 に答える 1

1

と の 2 つのメソッドを定義する必要がありmin(Tree)max(Tree)span(Tree t)として定義されmax(t) - min(t)ます。spanそれ自体は再帰的であってはなりませんが、必要に応じて再帰的にすることができminますmax

minandは独自のメソッドである必要maxはないことに注意してください。それらを独自のユニットとして立てたくない場合は、次のspanようにすべてを配置できます。

int span(Tree t) {
   Tree tMin = t;
   while (tMin.left != null) {
      tMin = tMin.left;
   }

   Tree tMax = t;
   while (tMax.right != null) {
      tMax = tMax.right;
   }

   return tMax.key - tMin.key;
}
于 2010-05-12T16:21:36.747 に答える