Dato n elementi, il numero di alberi binari di ricerca che possono essere fatte da tali elementi è dato dalla ennesimo Catalan number (C denotato n). Questo è uguale a
Intuitivamente, i numeri di Catalan rappresentano il numero di modi in cui è possibile creare una struttura di n elementi che è fatto nel seguente modo:
- Ordinare gli elementi come 1, 2, 3, ..., n.
- Selezionare uno di questi elementi da utilizzare come elemento di rotazione. Questo divide gli elementi rimanenti in due gruppi: quelli che precedono l'elemento e quelli che vengono dopo.
- Ricostruisce in modo ricorsivo strutture da questi due gruppi.
- Combina queste due strutture con l'unico elemento rimosso per ottenere la struttura finale.
Questo schema corrisponde perfettamente ai modi in cui è possibile creare un BST da un insieme di n elementi. Scegli un elemento da utilizzare come radice dell'albero. Tutti gli elementi più piccoli devono andare a sinistra e tutti gli elementi più grandi devono andare a destra. Da lì, puoi costruire BST più piccoli dagli elementi a sinistra e a destra, quindi fonderli insieme al nodo radice per formare un BST generale. Il numero di modi in cui è possibile farlo con n elementi è dato da C n, e quindi il numero di possibili BST è dato dall'ennesimo numero Catalano.
Spero che questo aiuti!
Probabilmente [relativo] (http: // stackoverflow.com/questions/3042412/with-n-no-of-nodes-how-many-different-binary-and-binary-search-trees-possib). –