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