18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

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.

• i rimanenti nodi, se esistono, possono essere suddivisi in insiemi disgiunti, ciascuno dei quali<br />

è a sua volta un albero detto sottoalbero (si noti che ciascun sottoalbero ha una propria<br />

radice).<br />

Questa definizione è ricorsiva poichè espressa in funzione di altri alberi.<br />

In Figura 17.7 sono presenti diversi sottoalberi. Tra gli altri, vi sono quelli che hanno come<br />

radice i nodi v2, v4, v6, v7.<br />

Il grado di un nodo è il numero i sottoalberi del nodo stesso.<br />

17.10.1 Visita degli alberi<br />

La visita di un albero consiste nell’ esaminare tutti i suoi nodi uno <strong>per</strong> uno in ordine appropriato.<br />

La soluzione più banale è quella di ripartire ogni volta d<strong>alla</strong> radice, dopo aver esaminato un<br />

nodo; tale soluzione è fortemente inefficiente.<br />

Sono stati proposti metodi di visita di un albero che prevedono un ordinamento particolarmente<br />

efficienti <strong>per</strong> alberi ordinati.<br />

I metodi di visita in ordine anticipato e in ordine differito si distinguono <strong>per</strong> il tempo di esame<br />

di ogni nodo rispetto ai suoi sottoalberi. Questi metodi si basano su sequenze di azioni di natura<br />

ricorsiva.<br />

17.10.2 Visita in ordine anticipato<br />

La visita in ordine anticipato prevede le seguenti azioni:<br />

1. esamina la radice<br />

2. sia n ≥ 0 è il grado (numero di sottoalberi) della radice; allora<br />

• visita il primo sottoalbero, in ordine anticipato;<br />

• visita il secondo sottoalbero, in ordine anticipato;<br />

• . . .<br />

• visita l’n-esimo sottoalbero, in ordine anticipato<br />

La visita di ciascun sottoalbero avviene partendo d<strong>alla</strong> radice del sottoalbero stesso, che è il nodo<br />

collegato <strong>alla</strong> radice del passo precedente.<br />

Si noti che in questo caso la radice viene esaminata prima di esaminare i relativi sottoalberi.<br />

In Figura 17.8 è riportata la sequenza determinata d<strong>alla</strong> visita anticipata dell’albero di<br />

Figura 17.7. I numeri all’interno dei box rettangolari rappresentano la sequenza di visita dei<br />

corrispondenti nodi. Un modo alternativo di rappresentare la sequenza di visita è il seguente:<br />

v1 [[v2 ((v5) (v6 (v10)))] [v3] [v4 (v7 ((v11) (v12)) (v8) (v9))]]<br />

dove le parentesi sono utilizzate <strong>per</strong> evidenziare i sottoalberi. L’uso delle parentesi quadre e<br />

tonde non ha alcun significato semantico, ma serve soltanto a rendere la rappresentazione più<br />

facile da interpretare. Senza l’indicazione dei sottoalberi la scrittura diventa:<br />

v1 v2 v5 v6 v10 v3 v4 v7 v11 v12 v8 v9<br />

159

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

Saved successfully!

Ooh no, something went wrong!