1. Che cos'è un Albero?
A differenza delle strutture lineari viste finora (liste, pile, code) in cui gli elementi sono disposti in sequenza, un albero (Tree) è una struttura dati non lineare che modella una relazione gerarchica di tipo uno-a-molti.
Un albero è costituito da un insieme finito di elementi chiamati nodi collegati da archi (o rami). Il modello ricorda una struttura ad albero capovolta, che parte dall'alto con la radice e si ramifica verso il basso.
2. Terminologia Fondamentale
- Radice (Root): Il nodo iniziale dell'albero, posizionato al livello più alto. È l'unico nodo a non avere genitori.
- Padre e Figlio (Parent & Child): Ogni nodo (tranne la radice) ha esattamente un nodo superiore chiamato padre e può avere zero o più nodi dipendenti chiamati figli.
- Fratelli (Siblings): Nodi che condividono lo stesso padre.
- Foglia (Leaf): Un nodo che non possiede alcun figlio (grado uscente pari a zero).
- Sottoalbero (Subtree): Qualsiasi nodo dell'albero, preso insieme a tutti i suoi discendenti, forma un sottoalbero.
- Altezza e Profondità: La profondità di un nodo è la lunghezza del cammino dalla radice al nodo. L'altezza dell'albero è la massima profondità tra tutti i suoi nodi.
Un albero binario è un particolare tipo di albero in cui ogni nodo può avere al massimo due figli, convenzionalmente denominati figlio sinistro (left) e figlio destro (right). Questa struttura è la base di algoritmi di ricerca avanzati come i Binary Search Trees (BST).
3. Simulatore Interattivo: Gerarchia di Nodi
Esplora la struttura gerarchica aggiungendo nodi e verificando le relazioni padre-figlio.