Programozási tételek

Visszalépéses keresés


Rekurzív változat

kezdetben d[] := 0
Eljárás bt(i)
    Ha megoldás(i) akkor
        megoldás tárolása vagy kiírása
    különben
        d[i] := d[i] + 1    // adott szinten a következő döntés
        Ciklus amíg d[i] <= MAX
            Ha jó(i) akkor
                d[i+1] := 0
                bt( i + 1 )
            Elágazás vége
            d[i] := d[i] + 1
        Ciklus vége
    Elágazás vége
Eljárás vége
megoldás: bt(1)

Ciklusos változat

d[1..n] := 0; i := 1; DB := 0
Ciklus amíg i > 0
    Ciklus
        d[i] := d[i] + 1
    amíg d[i] <= MAX és rossz(i)
    Ha d[i] <= MAX
    akkor
        Ha i = N // megoldás
        akkor
            DB := DB + 1
            megoldás tárolása vagy kiírása
            d[i] := 0    // megyünk tovább
            i := i - 1
        különben
            i := i + 1
        Elágazás vége
    különben
        d[i] := 0
        i := i - 1
    Elágazás vége
Ciklus vége