İkili Arama Ağacı - düşük ve en yüksek tuşunun arasındaki farkı Dönüş

oy
4

Bu benim çalışılıyor ikili arama ağaçları üzerinde geçmiş sınav kağıdıdır. Ben çıktı ben bunlardan birini inşa edebilen değilim olarak doğru olup olmadığını kontrol etmek hiçbir yolu yoktur.

soru başlığında olduğu

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

Herkes ben 5/5 işaretleri almak için değiştirmek için gerekenleri önermek Could: D - Yapmamız gereken tek şey yazmaya spanyöntemi, başlık bizim için verildi.

Oluştur 12/05/2010 saat 16:55
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

İki yöntem tanımlamak gerekir, min(Tree)ve max(Tree)sonra, span(Tree t)olarak tanımlanır max(t) - min(t). spankendisi özyinelemeli olmamalı, ancak yapabilir minve maxisterseniz özyinelemeli.

Not minve maxgelmez sahip kendi yöntemleri olmak. Eğer yapmak için umursamıyorsan onları içine tüm koyabilirsiniz, kendi birimleri olarak standı spanböyle:

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;
}
Cevap 12/05/2010 saat 17:21
kaynak kullanıcı

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