Il numero di alberi binari può essere calcolata utilizzando l'catalan number.
Il numero di alberi di ricerca binaria può essere visto come una soluzione ricorsiva. cioè, numero di alberi binari di ricerca = (numero di Sinistra ricerca binaria sotto-alberi) * (Numero di destra sotto-alberi binari di ricerca) * (modi per scegliere la radice)
In un BST, solo l'ordine relativo tra gli elementi importa. Quindi, senza alcuna perdita di generalità, possiamo supporre che gli elementi distinti nell'albero siano 1, 2, 3, 4, ...., n. Inoltre, lascia che il numero di BST sia rappresentato da f (n) per n elementi.
Ora abbiamo i casi multipli per la scelta della radice.
- scegliere 1 come radice, nessun elemento può essere inserito sul sottoalbero sinistro. n-1 elementi saranno inseriti nella sottostruttura di destra.
- Scegliere 2 come utente root, 1 elemento può essere inserito nell'albero secondario sinistro. n-2 elementi possono essere inseriti nel sotto-albero di destra.
- Scegliere 3 come utente root, elemento può essere inserito nell'albero secondario sinistro. n-3 elementi possono essere inseriti nel sotto-albero di destra.
...... Analogamente, per i-esimo elemento come radice, i-1 elementi possono essere a sinistra e n-i sulla destra.
Questi sotto-alberi sono stessa BST, quindi, possiamo riassumere la formula come:
f (n) = f (0) f (n-1) + f (1) f (n -2) + .......... + f (n-1) f (0)
casi Base, f (0) = 1, in quanto v'è esattamente 1 modo per fare un BST con 0 nodi. f (1) = 1, in quanto vi è esattamente 1 modo per creare un BST con 1 nodo.
Alex, grazie assegnare. – siva
Raccomando questo articolo che affronta davvero questo problema e descrive l'approccio usando la ricorsione e la programmazione dinamica. Conteggio degli alberi di ricerca binaria creati da N elementi unici http://techieme.in/count-binary-search-trees/ – dharam
la soluzione fornita qui http://cslibrary.stanford.edu/110/BinaryTrees.html # 12 doesn abbinare la soluzione fornita calcolata dal numero di catalano. Questo è countTrees (4) dovrebbe essere 5 non 14, giusto? Ma restituisce 14. (Questa è la serie 1, 1, 2, 5, 14, 42, 132) – Joyce