java polimorf bináris keresési fa

szavazat
0

Hogyan végre egy polimorf bináris keresési fa (amely alkalmazza a EmptyTree és NonEmptyTree) használata nélkül downcasting vagy osztály ellenőrzése?

A kérdést 02/04/2010 06:31
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Hozzon létre egy közös felületet, mint:

interface TreeNode<K, V> {
   TreeNode<K, V> find(K key)
}

Ezután adja osztályok, amelyek megfelelnek a közös interfész:

class EmptyTree<K, V> implements TreeNode<K, V> {
   public TreeNode<K, V> find(K key) {
      // ...
   }
}

class NonEmptyTree<K, V> implements TreeNode<K, V> {
   public TreeNode<K, V> find(K searchKey) {
      // ...
   }
}

A végrehajtás az EmptyTree mindig jelzi a hiba keresésében elem (akár visszatérő null vagy kivételt dob), míg a végrehajtása NonEmptyTree akkor sem tér vissza magát (ha a biztosított keresési kulcs mérkőzést), vagy átruházhatja a bal vagy a jobb részfa. Mivel a bal vagy a jobb részfa mindig létezik (akkor sem lehet NonEmptyTree vagy EmptyTree), a „NonEmptyTree” osztályú egyszerűen utal az a gyerekek a közös interfészen keresztül, és azon a tényen alapul, hogy a futási típus a helyes dolgot (így nem szükséges, hogy nem minden öntés vagy típusellenőrzés a gyerekek a végrehajtása az algoritmus).

Az egyetlen hely, ahol meg kell tudni, hogy a futási típus az, amikor megépíteni a gyerekek.

Válaszolt 02/04/2010 06:54
a forrás felhasználó

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