I modelli frequenti in albero Algoritmi

July 16

I modelli frequenti in albero Algoritmi


I dati vengono comunemente memorizzati in strutture ad albero binario utilizzando algoritmi specializzati. Molti vantaggi provengono da memorizzare i dati in una struttura ad albero. Ad esempio, la ricerca di un albero binario ordinato è molto più veloce di ordinare una struttura di dati sequenziali, come un array. Una struttura di dati di albero può assumere molti tipi di modelli nel corso di accesso ai dati e la modifica. La comprensione di questi modelli può aiutare a progettare algoritmi migliori per ottimizzare un algoritmo di albero.

I componenti di base di un albero binario

Un albero binario è costituita da nodi, che memorizzano i dati e punto ad altri nodi dell'albero. Il nodo principale è il punto di partenza dell'albero e occupa il livello superiore. Si può avere fino a due nodi figlio. Questi nodi figli possono anche avere fino a due nodi figlio. Il numero di nodi figli di un dato nodo è chiamato il grado del nodo. Un nodo senza figli e un grado zero è chiamato una foglia. La lunghezza in nodi dal nodo radice al nodo foglia più lontana è l'altezza dell'albero. La profondità di un nodo è la distanza dal nodo radice ad esso. Ogni nodo che ha la stessa profondità si dice che sia allo stesso livello.

Albero pieno binario

Un albero binario completo è un albero in cui ogni nodo ha esattamente due o nulli bambini. In altre parole, ogni nodo sia ha due figli o è una foglia. Un esempio di un albero binario completo è binaria decisione Diagramma o BDD.

Albero Perfetto binario

Un albero binario perfetta ha le stesse proprietà del albero binario completo, ma tutti i nodi foglia sono sullo stesso piano, il che significa che la profondità di tutte le foglie è la stessa in un albero binario perfetta. Poiché è anche un albero binario completo, tutti i nodi tranne i nodi foglia hanno un grado di 2.

Albero binario bilanciato

Un albero binario bilanciato è uno in cui la profondità di ogni nodo foglia è identico o diverso da un valore di uno. L'aggiunta e la rimozione di nodi da un albero binario bilanciato in grado di sbilanciare, quindi una serie di aggiustamenti chiamati rotazioni deve avvenire per riequilibrare l'albero. Mantenere un albero bilanciato assicura che il tempo medio di ricerca per qualsiasi nodo è ottimale. grande carico di lavoro è necessario per mantenere l'equilibrio di un albero.

Degenerate albero binario

Un albero binario degenerato è quella in cui ogni nodo tranne il nodo foglia ha esattamente un nodo figlio. Ha le stesse prestazioni di una lista collegata, che aumenta il tempo di ricerca per ogni nodo da una notevole quantità. Ad esempio, si consideri il caso in cui il nodo cercato è il nodo foglia. L'intero albero deve essere attraversato per trovare questo nodo. Con un albero binario bilanciato, trovando un nodo foglia richiede solo un numero di attraversamenti di nodo pari alla profondità del nodo foglia. Con grandi alberi, la differenza di prestazioni può essere significativo.