Radice
L’unico nodo senza padre; è il punto d’ingresso della struttura.
Algoritmi · Strutture dati
Un albero binario di ricerca mantiene le chiavi in un ordine che guida ogni decisione: più piccolo a sinistra, più grande a destra. La sua efficienza dipende dalla forma dell’albero, non soltanto dal numero di nodi.
Per ogni nodo v: chiavi(sinistra(v)) < v < chiavi(destra(v))
La condizione deve valere per interi sottoalberi, non soltanto per i due figli immediati. Per semplicità il laboratorio non accetta duplicati; in un’implementazione reale va scelta e documentata una politica coerente.
L’unico nodo senza padre; è il punto d’ingresso della struttura.
Un nodo senza figli. Un nodo può anche avere un solo figlio.
Numero di archi dalla radice al nodo. La radice ha profondità 0.
Numero di livelli sul cammino più lungo. Qui un albero vuoto ha altezza 0 e una foglia altezza 1.
I nodi sono selezionabili. Le rotazioni agiscono sul nodo selezionato; ricerca, inserimento ed eliminazione mostrano il cammino seguito dai confronti.
In-order
Pre-order
Post-order
Confronta la chiave con il nodo: termina se è uguale, vai a sinistra se è minore, a destra se è maggiore.
Segue lo stesso cammino della ricerca e collega una nuova foglia al primo puntatore vuoto.
Una foglia si rimuove; un nodo con un figlio si sostituisce con quel figlio; con due figli si usa il successore in-order.
Una rotazione è una modifica locale in tempo Θ(1). Conserva tutte le relazioni di ordinamento e quindi lascia invariata la visita in-order.
x y
/ \ / \
A y → x C
/ \ / \
B C A B
Richiede un figlio destro y. y viene promosso; il sottoalbero B passa da sinistra di y a destra di x.
y x
/ \ / \
x C → A y
/ \ / \
A B B C
È l’operazione inversa. Richiede un figlio sinistro x e trasferisce B da destra di x a sinistra di y.
| Operazione | Costo | Albero bilanciato | Caso peggiore |
|---|---|---|---|
| Ricerca | Θ(h) | Θ(log n) | Θ(n) |
| Inserimento | Θ(h) | Θ(log n) | Θ(n) |
| Eliminazione | Θ(h) | Θ(log n) | Θ(n) |
| Minimo / massimo | Θ(h) | Θ(log n) | Θ(n) |
| Una rotazione | Θ(1) | Θ(1) | Θ(1) |
| Visita completa | Θ(n) | Θ(n) | Θ(n) |
Ogni confronto elimina circa metà dei candidati.
Valori inseriti già ordinati possono creare una lista collegata mascherata da albero.
Sinistra, nodo, destra. In un BST restituisce le chiavi ordinate.
Nodo, sinistra, destra. Utile per serializzare o ricostruire la forma.
Sinistra, destra, nodo. Utile quando i figli vanno elaborati prima del padre.