Cognome___________________ Nome ____________________ Matricola____________________
Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica.
Esame di Fondamenti di Informatica (V.O.) e II (N.O.) (prova pratica di programmazione n.1)
26-giugno-2002
Testo dell’esercizio
Sia data la seguente interfaccia Java, che descrive i metodi di una lista semplificata:
public interface EsercizioList {
/* aggiunge un elemento in testa alla lista */
public void addToHead (Object data);
/* ritorna e rimuove l’elemento in posizione i-esima: */
/* la prima posizione della lista è la posizione 0 */
public Object remove (int i);
/* stampa a video tutti gli elementi della lista */
public void printElements ();
}
1) Definire la classe EsercizioLinkedList che implementa l’interfaccia EsercizioList tramite rappresentazione collegata, utilizzando la classe Node che ha lo scheletro seguente.
public class Node {
/* variabili di istanza */
private Object elem; // l’elemento associato al nodo private Node next; // il successore del nodo
/* metodi */
public Node (); // costruttore: crea un nodo vuoto
public void setElement (Object elem); // imposta l’elemento del nodo public Object getElement (); // ritorna l’elemento del nodo
public void setNext (Node next); // imposta il successore del nodo public Node getNext (); // ritorna il successore del nodo
}
La classe Node è già implementata e presente sul dischetto.
Suggerimento: il metodo printElements() può essere implementato scandendo tutti i nodi della lista.
Sull’oggetto associato ad ogni nodo scandito si invoca il metodo toString() e si stampa il risultato.
2) Definire una semplice classe di test TestEsercizioLinkedList che contiene il solo metodo
main. Tale metodo svolge nell’ordine le seguenti azioni: (a) fa inserire all’utente un insieme di oggetti String ed inserisce tali oggetti in una lista di tipo EsercizioLinkedList (il numero di oggetti da inserire è scelto dall’utente); (b) stampa tutti gli elementi della lista; (c) fa segliere all’utente un numero i e cancella dalla lista l’elemento in posizione i. (d) stampa nuovamente tutti gli elementi della lista.
Non debbono essere gestiti errori dovuti ad inserimenti sbagliati di input. Si assuma cioè che i sia sempre una posizione valida nella lista.
Note importanti:
• Sul dischetto che ti è stato dato trovi la classe Node e la classe ReadStream già compilate.
• Salva le classi che devi definire sul dischetto.
• Scrivi Cognome, Nome e Matricola sia su questo foglio sia in un commento in testa alle classi che devi definire.
• Il dischetto va riconsegnato ben incartato in questo foglio
Cognome___________________ Nome ____________________ Matricola____________________
Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica.