Algoritmus
Egy lehetséges elhelyezést megadó algoritmus
Eljárás bt(i)
Ha i > 0
akkor
d[i] := d[i] + 1
Ciklus amíg d[i]<=8 és rossz(i)
d[i] := d[i] + 1
Ciklus vége
Ha d[i] <= 8
akkor
Ha i = 8
akkor
KI( d[] )
különben
bt(i+1)
Elágazás vége
különben
d[i] := 0;
bt(i-1);
Elágazás vége
Elágazás vége
Eljárás vége
Függvény rossz(i):logikai
rossz := hamis
Ciklus j := 1-től (i-1)-ig
Ha (T[j]=T[i]) vagy (T[j]-j=T[i]-i) vagy (T[j]+j=T[i]+i)
akkor
rossz := igaz
kiugrás a ciklusból
Elágazás vége
Ciklus vége
Függvény vége
bt(1);
Az összes megoldás előállítása
Egyetlen apró módosítás kell: helyes megoldás megtalálása után is visszalépünk.
Eljárás bt(i)
Ha i > 0
akkor
d[i] := d[i] + 1
Ciklus amíg d[i]<=8 és rossz(i)
d[i] := d[i] + 1
Ciklus vége
Ha d[i] <= 8
akkor
Ha i = 8
akkor
KI( d[] )
d[i] := 0
bt(i-1)
különben
bt(i+1)
Elágazás vége
különben
d[i] := 0;
bt(i-1);
Elágazás vége
Elágazás vége
Eljárás vége
Kódok