Hi,
ich habe eine rekursive Funktion mit folgender Signatur:
Die Funktion soll rekursiv und durch Backtracking ein Sudoku lösen, dabei geht die Funktion vom oben links nach unten rechts Zelle für Zelle durch.
Das heißt, wenn der Algorithmus irgendwann bei Zeile > 8 ankommt, soll die Rekursion abbrechen und true liefern.
Wenn ich return true; als Abbruchbedingung nutze, dann beendet er ja nur diesen Rekursionsaufruf (einen von vielen!) als true und durchs Backtracking werden die anderen dann trotzdem noch weiter arbeiten und verfälschen somit das Ergebnis.
Kann man irgendwie die gesamte Methode anhalten außer durch eine Exception?
ich habe eine rekursive Funktion mit folgender Signatur:
Java:
public static boolean solve(...) {
if(row > 8)
//KOMPLETTE Rekursion beenden
/*
LOGIK
*/
return false;
}
Die Funktion soll rekursiv und durch Backtracking ein Sudoku lösen, dabei geht die Funktion vom oben links nach unten rechts Zelle für Zelle durch.
Das heißt, wenn der Algorithmus irgendwann bei Zeile > 8 ankommt, soll die Rekursion abbrechen und true liefern.
Wenn ich return true; als Abbruchbedingung nutze, dann beendet er ja nur diesen Rekursionsaufruf (einen von vielen!) als true und durchs Backtracking werden die anderen dann trotzdem noch weiter arbeiten und verfälschen somit das Ergebnis.
Kann man irgendwie die gesamte Methode anhalten außer durch eine Exception?