Tegyük vissza a különbség a legalacsonyabb és a legmagasabb kulcs - Binary keresési fa

szavazat
4

Ez egy idő vizsgafeladatsor bináris keresési fák én próbálkozik. Nincs mód arra, hogy ha a kimenetet ahogy én sem vagyok képes az épület egy ilyen dolog.

A kérdés a címben

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;
    }
}

Tudna valaki arra utalnak, amit meg kell változtatni, hogy 5/5 jelek: D - az egyetlen dolog, amit meg kell tennie, hogy írja be a spanmódszer, a fejléc kapott számunkra.

A kérdést 12/05/2010 16:55
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Meg kell határozni a két módszer, min(Tree)és max(Tree), majd span(Tree t)definiáljuk max(t) - min(t). spanönmagában nem kellene rekurzív, de lehet, hogy minés maxrekurzív, ha akarja.

Figyeljük meg, hogy min, és maxnem kell , hogy a saját módszereit. Ha nem érdekel, hogy azok állni a saját egységeket, akkor tegye az egészet span, mint ez:

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;
}
Válaszolt 12/05/2010 17:21
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more