Tananyag‎ > ‎Algoritmusok‎ > ‎

Bináris keresőfa

BinarisKeresofa.java

public class BinarisKeresofa {

    public static Elem gyoker;
    
    public static void beszur(int mit) {
        // Mit kell csinálni, ha a fa üres? azaz gyoker == null
        
        // (a nullt akkor használhatjuk, ha létrehozunk egy változót (egy
        // táskát), amibe objektumok "férnek" (pl Elem gyoker), viszont egyelőre
        // nem szeretnénk belerakni semmit, üresen szeretnénk hagyni)
        
        // Ha van gyökérelem, akkor passzoljuk tovább a feladatot a kétváltozós
        // beszur-nak!
    }
    public static void beszur(int mit, Elem hova) {
        // Itt csak a "hova" alatti részfába akarunk beszúrni.
        
        // Ha pont ezt az értéket tartalmazza a "hova" csúcs, akkor nem is kell
        // beszúrnunk, megállhatunk
        
        // Ha a "hova" csúcs értékénél kisebb a "mit", akkor balra kell tovább
        // mennünk, különben jobbra
        
        // Akármelyik irányba is megyünk tovább, ha üres csúcsot találunk
        // (null-t), akkor már tudjuk, hová kell beszúrni
        // (pl hova.bal = new Elem() és hova.bal.ertek = ...)
        
        // Ha nem üres csúcsot találunk, akkor hívjuk meg a beszur-t arra a
        // csúcsra!
    }
    public static boolean benneVan(int mi) {
        // Hasonlóan külön eset, ha üres a fa (gyoker == null)
        
        // Különben passzoljuk tovább a feladatot a kétparaméteres benneVan-nak!
        return false;
    }
    public static boolean benneVan(int mi, Elem hol) {
        // Hasonlóan halad a beszurhoz, de meg kell gondolni, hogy mikor kell
        // true-t, mikor false-t visszaadni
        return false;
    }
    
    public static void main(String[] args) {
        beszur(2);
        beszur(3);
        beszur(4);
        beszur(2);
        beszur(5);
        
        System.out.println(benneVan(3));    // true
        System.out.println(benneVan(8));    // false
    }
    
}

Elem.java

public class Elem {
    // Ahogy órán ...
}