Beispiel #1
0
    public override Csucs KeresCiklussal(Csucs start)
    {
        Csucs akt = start;

        while (akt != null)
        {
            if (akt.TerminalisE())
            {
                return(akt);
            }
            if (akt.Melyseg >= melysegiKorlat)
            {
                akt = akt.Szulo;
            }
            Csucs gyermek = akt.KovetkezoGyermek();
            if (gyermek == null)
            {
                akt = akt.Szulo;
            }
            else
            {
                akt = gyermek;
            }
        }
        return(null);
    }
Beispiel #2
0
    public override Csucs Keres(Csucs akt)
    {
        // ha akt terminális, akkor kész, visszadom őt
        if (akt.TerminalisE())
        {
            return(akt);
        }
        // ha alértem a mélységi korlátot, akkor visszalépés
        if (akt.Melyseg >= melysegiKorlat)
        {
            return(null);
        }
        // elenkező esetben lépek egyet előre
        // azaz legyártom a gyermeket

        Csucs terminalis = null;

        while (terminalis == null)
        {
            Csucs gyermek = akt.KovetkezoGyermek();
            if (gyermek == null)
            {
                return(null);            // ha reku, akkor ez a visszalépés
            }
            terminalis = Keres(gyermek); //reku ameddig, level elemhez nem erunk
        }
        return(terminalis);
    }