ISTRUZIONI E TESTI
[1]
Si consideri il tipo di dati astratto modificabile
IndexedCollection<E>,
utilizzata per rappresentare una collezione di elementi
generici (non null)
di tipo E
caratterizzati da un indice univoco.
Tale tipo di dati ha, tra gli altri, i seguenti metodi
-
public void insertAt(E elem, int p), che
inserisce l'elemento elem nella collezione
alla posizione p,
spostando l'elemento contenuto in precedenza in una posizione libera;
-
public E get(int p),
che restituisce l'elemento associato all'indice
p
nella collezione;
-
public int indexOf(E elem),
che restituisce la posizione del più grande indice
associato all'elemento elem nella
collezione, e -1 se elem
non appartiene alla collezione.
Si completi la specifica del tipo di dati astratto, includendo una overview con la descrizione
di un'istanza tipica e fornendo la specifica completa dei metodi, comprese le eventuali eccezioni lanciate.
Soluzione: la classe IndexedCollection<E>.
[2]
Si definisca la classe public ArrayIndexedCollection<E> che implementa
il tipo di dati astratto IndexedCollection<E>.
Questa deve utilizzare una rappresentazione del tipo
private E[] data;
In particolare, si definiscano la funzione di astrazione e l'invariante di rappresentazione.
Soluzione: la classe ArrayIndexedCollection<E>.
[3]
Si dimostri la correttezza dell'implementazione proposta.
|