Ihre Frage ist gleichbedeutend mit der Frage nach der Anzahl der topologischen Anordnungen für die gegebene BST zu zählen.
Zum Beispiel für die BST
10
/ \
5 20
\7 | \
15 30
10 beginnt jede Bestellung: die Menge der topologischen Anordnungen kann von Hand wie folgt gezählt werden. Die Anzahl der topologische Anordnungen für den Teilbaum mit 20 beginnt, ist zwei (20, 15, 30) und (20, 30, 15). Der Teilbaum mit 5 ausgehend nur einer Reihenfolge: (5, 7). Diese zwei-Sequenz kann in beliebiger Weise verschachtelt werden, um 2 x 10 Verschachtelungen führende somit zwanzig Eingänge, welches die gleiche BST erzeugen. Die ersten 10 sind im folgenden für den Fall (20, 15, 30) aufgezählt:
10 5 7 20 15 30
10 5 20 7 15 30
10 5 20 15 7 30
10 5 20 15 30 7
10 20 5 7 15 30
10 20 5 15 7 30
10 20 5 15 30 7
10 20 15 5 7 30
10 20 15 5 30 7
10 20 15 30 5 7
Der Fall ist (20, 30, 15) analog --- Sie können prüfen, ob eine der folgenden Eingaben die gleiche BST erzeugt.
Dieses Beispiel stellt auch eine rekursive Regel die Anzahl der Ordnungen zu berechnen. Für ein Blatt ist die Nummer 1 für einen Nicht-Blattknoten mit einem Kind, die Zahl der Anzahl der topologischen Anordnungen für das Kind ist gleich. Für einen Nicht-Blattknoten mit zwei Kindern mit Teilbaum Größen | L | und | R |., beide mit L und R Ordnungen bzw. die Anzahl gleich zu
l x r x INT(|L|, |R|)
Wo INT ist die Anzahl der möglichen Verschachtelungen von | L | und | R | Elemente. Dies kann leicht berechnet werden (| L | + | R |)! / (| L |! X | R |!). Für das obige Beispiel, erhalten wir die folgende rekursive Berechnung:
Ord(15) = 1
Ord(30) = 1
Ord(20) = 1 x 1 x INT(1, 1) = 2 ; INT(1, 1) = 2! / 1 = 2
Ord(7) = 1
Ord(5) = 1
Ord(10) = 1 x 2 x INT(2, 3) = 2 x 5! / (2! x 3!) = 2 x 120 / 12 = 2 x 10 = 20
Dies löst das Problem.
Hinweis: Diese Lösung setzt voraus, dass alle Knoten in der BST verschiedene Schlüssel haben.