Um einen Baun nach einigen Mustern zu durchsuchen ist im allgemeinen immer noch Backtracking die richtige Strategie, oder?
(ich kenn mich mit Backtracking aus, aber könnte ja sein, dass ich irgendwelche neuen Entwicklungen verschlafen habe...)
Nun, die Nodes des Baumes sind Instanzen von jeweils verschiedene Klassen (mit gemeinsamem Interface).
Nun, als einfachstes Beispiel habe ich als Muster, dass ein Node vom Typ B (Instanz der Klasse B) ein Child vom Typ A und eins vom Typ C haben muss. Die Muster können aber auch wesentlich komplizierter werden.
Der Baum repräsentiert übrigens einen mathematischen Ausdruck (-> Math.NET) ...