Kaskadenförmige Rekursion symmetrisch abarbeiten

Hallo,

ich stehe vor folgendem Problem: Ich habe einen rekursiven Algorithmus, der sich pro Durchlauf zweimal wieder aufruft, wodurch beim Ausführen eine Art Binärbaum entsteht. Der Algorithmus behandelt eine Art Kombinatorik-Problem, sodass er an jedem Knoten prüft, ob die Lösung gefunden wurden, und dann den Durchlauf beendet, anderenfalls mit eben zwei Alternativen wieder aufgerufen wird.

Entsprechend seiner rekursiven Natur arbeitet er nun immer zuerst den kompletten ersten „Ast“ des Baumes ab, erst wenn hier aufgrund der Abbruchbedingung nicht weiterverzweigt wird, springt er im übergeordneten Knoten in den anderen Ast. Der am Anfangsknoten schon entstehende zweite Ast wird also erst recht spät durchsucht.

Bei meinem untersuchten Problem ist allerdings anzunehmen, dass sich die Lösung in relativ hoher Ordnung befindet, wonach es ineffizient wäre, erst den einen Teil bis zu einer extremen Tiefe zu durchsuchen, und dann erst den anderen. Man müssten den Baum quasi „symmetrisch“ durchlaufen.

Lässt sich so etwas realisieren?

JA (owT)
MfG Peter(TOO)

wonach
es ineffizient wäre, erst den einen Teil bis zu einer extremen
Tiefe zu durchsuchen, und dann erst den anderen. Man müssten
den Baum quasi „symmetrisch“ durchlaufen.

Lässt sich so etwas realisieren?

Ja, du suchst nach der Breitensuche, im Gegensatz zur Tiefensuche, die du bisher durchführst. Breitensuche realisiert man üblicherweise mithilfe einer Warteschlange: http://de.wikipedia.org/wiki/Breitensuche

Gruß,
Andreas