Váš dotaz je ekvivalentní k otázce spočítáním topologických orderings pro danou BST.
Například pro BST
10
/ \
5 20
\7 | \
15 30
množina topologické orderings lze počítat ručně takto: 10 spustí každé objednávce. Počet topologických orderings pro podstromu počínaje 20 je dva: (20, 15, 30) a (20, 30, 15). Podstrom počínaje 5 má pouze jedno uspořádání: (5, 7). Tyto dvě sekvence mohou být prokládány v libovolným způsobem, což vede k 2 x 10 interleavings, tak produkovat dvacet vstupy, které produkují stejné BST. Prvních 10 jsou vyjmenovány níže pro případ, (20, 15, 30):
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
Pouzdra (20, 30, 15) je analogický --- lze zjistit, že každý z těchto vstupů produkuje stejný BST.
Tento příklad také poskytuje rekurzivní pravidla pro výpočet počtu orderings. U listu, je číslo 1 pro non-koncový uzel s jedním dítětem, číslo se rovná počtu topologických orderings pro dítě. Pro non-listu uzlu se dvěma dětmi s velikostí podstromu | l | a | R |. Oba mají L a R orderings, resp počet se rovná
l x r x INT(|L|, |R|)
Kde INT je počet možných interleavings z | l | a | R | Prvky. To lze snadno vypočítat (| L | + | R |)! / (| L |! X | R |!). Ve výše uvedeném příkladu, dostaneme následující rekurzivní výpočet:
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
To řeší problém.
Poznámka: Toto řešení předpokládá, že všechny uzly v BST mají různé klíče.