25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

7.11 Strutture dati dinamiche 401<br />

<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

(a)<br />

❝. . .<br />

❝. . .<br />

. . .<br />

. . .<br />

. . .<br />

❝. . .<br />

. . .<br />

. . .<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

<br />

<br />

<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

<br />

Figura 7.5: (a) Albero sbilanciato (b) Albero che degenera in lista lineare<br />

inseriti. <strong>Il</strong> vantaggio di usare una struttura ad albero cresce enormemente al crescere del numero<br />

di elementi. Infatti un albero perfettamente bilanciato consente di eseguire le operazioni<br />

di ricerca con un numero di visite pari a log 2 n essendo n il numero di elementi dell’albero. Si<br />

supponga, ad esempio, di dover inserire all’interno di un database 65535 valori. Nel caso in<br />

cui si debba ricercare un valore all’interno di questo elenco, utilizzando una lista concatenata il<br />

numero medio di valori da processare sarebbe pari a 65535/2 = 32768. Inserendo, invece, tali<br />

valori all’interno di una struttura ad albero, tutti i valori possono essere agevolmente inseriti in<br />

appena 16 ”livelli” così che il numero massimo di valori da processare prima di trovare il valore<br />

desiderato è appena 16. Questo semplice esempio fa comprendere l’enorme efficienza associata<br />

alle procedure di gestione dati attraverso strutture binarie. Per tale ragione molti database<br />

sono strutturati come alberi binari.<br />

E’ da precisare, tuttavia, che non sempre una struttura ad albero è così efficiente. Poiché,<br />

infatti, l’inserimento dei nodi nell’albero dipende dall’ordine in cui i dati vengono letti può<br />

accadere che una parte di albero appaia molto più ”nutrita” di un altra e l’albero sia fortemente<br />

sbilanciato, ciò aumentando il numero di livelli da processare nella visita all’albero durante le<br />

<br />

❝. . .<br />

. . .<br />

❝. . .<br />

❝. . .<br />

❝. . .<br />

. . .<br />

(b)<br />

❝. . .<br />

❝. . .<br />

❝. . .<br />

❝. . .<br />

❝. . .<br />

❝. . .<br />

❝. . .<br />

. . .<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

❝<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!