Spørsmålet ditt er tilsvarende til spørsmålet om å telle antall topologiske orde for gitt BST.
For eksempel for BST
10
/ \
5 20
\7 | \
15 30
settet av topologiske orde kan telles for hånd slik: 10 starter hver bestilling. Antallet topologiske orde for undertreet med utgangspunkt i 20 er to: (20, 15, 30) og (20, 30, 15). Undertreet som starter med 5 har bare ett rekkefølge: (5, 7). Disse to sekvensen kan innfelles i en vilkårlig måte, som fører til 2 x 10 interleavings, og dermed produsere tyve innganger som produserer den samme BST. Den første 10 er oppregnet nedenfor for en kasse (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
Saken (20, 30, 15) er analog --- man kan kontrollere at en hvilken som helst av de følgende innganger frembringer den samme BST.
Dette eksempelet gir også en rekursiv regel for å beregne antall den orden. For et blad, er nummer 1. For en ikke-bladnode med ett barn, er lik tallet til antall topologiske orde for barnet. For en ikke-blad node med to barn med undertreet størrelser | L | og | R |., begge har L og R orde, resp, er lik antallet til
l x r x INT(|L|, |R|)
Hvor INT er antall mulige interleavings av | L | og | R | elementer. Dette kan beregnes enkelt ved (| L | + | R |)! / (| L |! X | R |!). For eksempelet ovenfor, får vi følgende rekursive beregningen:
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
Dette løser problemet.
Merk: Denne løsningen forutsetter at alle noder i BST har forskjellige nøkler.