Cos'è una topologia ad albero?

Una topologia ad albero è un tipo speciale di struttura in cui molti elementi collegati sono disposti come i rami di un albero. Ad esempio, le topologie ad albero vengono spesso utilizzate per organizzare i computer in una rete aziendale o le informazioni in un database.

In una topologia ad albero, può esserci una sola connessione tra due nodi collegati. Poiché ogni due nodi può avere una sola connessione reciproca, le topologie degli alberi formano una gerarchia genitoriale e secondaria naturale.

Nelle reti di computer, una topologia ad albero è anche nota come topologia del bus stella . Incorpora elementi sia di una topologia di bus che di una topologia a stella. Di seguito è riportato un esempio di diagramma di rete di una topologia ad albero, in cui i nodi centrali di due reti stellari sono collegati tra loro.

Nell'immagine qui sopra, se il cavo principale o il trunk tra ciascuna delle due reti di topologia a stella dovessero fallire, quelle reti non sarebbero in grado di comunicare tra loro. Tuttavia, i computer sulla stessa topologia a stella sarebbero ancora in grado di comunicare.

Topologia ad albero nella programmazione di computer

Nella programmazione per computer, le topologie ad albero possono essere utilizzate per strutturare molti tipi di dati, incluso un programma per computer stesso.

Ad esempio, questo è un semplice programma per computer scritto in Lisp:

 (+ 1 2 (se (> p 10) 3 4)) 

Questo programma dice "Se p è maggiore di 10, aggiungi i numeri 1, 2 e 3. Altrimenti, aggiungi i numeri 1, 2 e 4." Come tutti i programmi Lisp, ha una struttura di topologia ad albero intrinseca. Se lo disegniamo come un grafico, sembra l'albero mostrato a destra. Rappresentare un programma in questo modo può essere utile perché mostra chiaramente come tutte le operazioni e i dati sono collegati.

Anche i programmi in questo tipo di struttura hanno usi speciali. Ad esempio, le tecniche di programmazione genetica possono evolvere nuovi programmi per computer scambiando le ramificazioni tra programmi esistenti strutturati come alberi.

Topologia ad albero in alberi binari

Un albero binario è una topologia ad albero in cui ogni nodo ha un massimo di due bambini. I nodi figlio sono etichettati come "figlio sinistro" o "figlio destro". Questo tipo di struttura dei dati viene spesso utilizzato per l'ordinamento e la ricerca di grandi quantità di dati. Nell'albero binario mostrato sotto, il figlio sinistro di ciascun genitore ha un valore inferiore al figlio giusto.

B-alberi

Un B-tree è una variante di un albero binario inventato da Rudolf Bayer e Ed McCreight nei Boeing Labs nel 1971. I suoi nodi hanno figli che rientrano in un minimo e un massimo predefiniti, di solito tra 2 e 7. Un semplice albero B il grafico potrebbe apparire come l'immagine qui sotto.

Gli alberi B sono "auto-bilanciati", cioè l'altezza dei rami è gestita in modo che non diventino eccessivamente grandi. Ogni nodo contiene partizioni "valori chiave" che indicano i valori dei bambini. Il loro design è ottimizzato per gestire file di dati di grandi dimensioni e per scrivere dati su memoria o su disco. Sono utilizzati estesamente in sistemi di database come MySQL, PostgreSQL e Redis e filesystem come NTFS, HFS + ed ext4.

Termini di rete, topologia