Università degli studi di Bergamo
Informatica II
Programmazione Object Oriented
Esercitazioni
Esercitazione 8
Dott. Marco Guarnieri
Dott. Eros Magri
31.05.12
Strutture Dati
Le principali strutture dati sono:
●
●
●
Stack
●
Push: aggiunge in testa
●
Pop: rimuove in testa
Queue
●
Add: aggiunge in coda
●
Remove: rimuove in testa
Tree
2
Strutture Dati
●
Stack
può essere realizzata semplicemente tenendo
un puntatore alla testa, ovvero all'ultimo
elemento inserito. Ovviamente quando si
implementa una pila la si implementa di tipo
generico.
3
Strutture Dati
●
Queue
bisogna implementarla come coda generica, la
cosa importante che la differenzia dalla pila è il
fatto che per comodità necessita di due
puntatori, uno al primo elemento ed uno
all'ultimo.
4
Strutture Dati
●
Liste Ordinate
Rispetto alla precedente l'unica differenza la si
trova nel metodo di inserimento nella lista che
richiede di scorrerla per trovare l'esatta
posizione in cui inserire l'elemento. Proprio per
questa ragione si ha un'efficienza leggermente
più elevata.
5
Strutture Dati
●
Liste Ordinate
La classe deve essere generica e tutte le
dichiarazioni dovranno far riferimento ad un tipo
di oggetto che estende l'interfaccia Comparable,
appunto perché deve essere possibile effettuare
l'ordinamento.
<E extends Comparable<? Super E>>
6
Strutture Dati
●
Tree
Gli alberi di ricerca in Java sono una struttura
leggermente più complessa rispetto alle
precedenti. Rispetto alle precedenti i nodi
dell'albero devono avere due puntatori (sx e dx).
Un'altra particolarità la si trova nella funzione di
inserimento e ricerca sono ricorsive.
L'inserimento va fatto rispettando l'ordiamento.
7
Esercizio - 15
●
●
Scrivere un metodo statico che prende come parametro un
array di String e lo ordina usando l'algoritmo di Bubble Sort.
Effettuare poi sull'array ordinato una Ricerca Dicotomica
utilizzando un metodo statico.
Ricordare che il metodo deve riportare:
… <T extends Comparable <? super T>> ...
8
Esercizio - 16
●
●
Implementare la struttura ad Albero di Ricerca con i metodi
di inserimento e ricerca e testare poi se funziona creando
un albero di String.
Implementare la ListaOrdinata e testarla creando una lista
di Integer.
9