• Non ci sono risultati.

Esame di Fondamenti di Informatica II (N.O.)(prova pratica di programmazione n.1)11-luglio-2002

N/A
N/A
Protected

Academic year: 2021

Condividi "Esame di Fondamenti di Informatica II (N.O.)(prova pratica di programmazione n.1)11-luglio-2002"

Copied!
2
0
0

Testo completo

(1)

Cognome___________________ Nome ____________________ Matricola____________________

Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica.

Esame di Fondamenti di Informatica II (N.O.) (prova pratica di programmazione n.1)

11-luglio-2002

Testo dell’esercizio

Una pila è una struttura di dati che consente di collezionare oggetti in base ad una strategia LIFO (Last In First Out), cioè l’ultimo elemento inserito è sempre il primo che può essere rimosso.

L’ultimo elemento inserito si chiama anche “elemento affiorante” dalla pila. Una pila consente sempre due tipi di operazioni: inserimento di un elemento (push) e rimozione dell’elemento affiorante (pop). In figura è mostrato una sequenza di operazioni su una pila inizialmente vuota.

Sia data la seguente interfaccia Java, che descrive i metodi di una pila:

public interface Pila {

/* inserisce un elemento nella pila */

public void push (Object data);

/* ritorna e rimuove l’elemento affiorante dalla pila: */

/* PRE: la pila è non vuota */

public Object pop ();

/* ritorna true se la pila è vuota e false altrimenti */

public boolean isEmpty();

}

Si supponga inoltre data la classe LinkedList che implementa una struttura di dati lista con i seguenti metodi:

/* costruttore: crea una nuova lista vuota */

public LinkedList ();

/* aggiunge un elemento in testa alla lista */

public void addToHead (Object data);

/* ritorna e rimuove l’elemento in testa alla lista */

/* PRE: la lista non è vuota */

public Object removeFromHead ();

/* ritorna il numero di elementi della lista */

public int size ();

1. Utilizzando la tecnica del forwarding, definire la classe PilaConLista che implementa l’interfaccia Pila utilizzando la classe LinkedList. (Suggerimento: ogni metodo della classe PilaConLista deve essere implementato usando un metodo della classe LinkedList).

2. Definire la classe TestPilaConLista per il test della classe PilaConLista. Tale classe di test contiene il solo metodo main, il quale svolge le seguenti azioni:

- Fa inserire all’utente un insieme di oggetti String in una pila P; l’insieme degli oggetti da inserire è deciso dall’utente stesso.

- Rimuove da P un numero al più n di oggetti, e visualizza tali oggetti. Il numero n è deciso dall’utente: se n è minore o uguale al numero di oggetti in P, allora vengono rimossi da P esattamente n oggetti; se n è maggiore del numero di elementi di P, allora P viene svuotata.

- Visualizza il numero di oggetti effettivamente rimossi da P.

pop pila

vuota

push push push pop push

(2)

Cognome___________________ Nome ____________________ Matricola____________________

Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica.

Note importanti:

• Sul dischetto che ti è stato dato trovi le classi ReadStream e LinkedList già compilate e pronte per l’uso.

• Salva le classi e le interfacce 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

Riferimenti

Documenti correlati

• Sul dischetto che ti è stato dato trovi già i file delle classi GestoreDiStringhe e TestGestoreDiStringhe e gli scheletri dei metodi che devi implementare3. Dovrai pertanto

• 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

Restituisce un array di interi conf di lunghezza k tale che: conf[i] = -1 se l’elemento di indice i in str1 precede lessicograficamente l’elemento di indice i di str2; conf[i]=1

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

• Fa creare e riempire all’utente una matrice a di stringhe; le dimensioni di a (cioè numero di righe e di colonne) sono decise dall’utente.. • Fa inserire all’utente

Tale metodo svolge nell’ordine le seguenti azioni: (a) crea una nuova agenda e fa inserire all’utente un numero a sua scelta di utenze nell’agenda; (b) chiede all’utente di

Tale metodo svolge nell’ordine le seguenti azioni: (a) crea due liste lis1 e lis2 di tipo SempliceLinkedList; (b) fa inserire all’utente un numero a sua scelta di stringhe in lis1

/* riceve come parametri un Vector, rettangoli, contenente soli oggetti Rettangolo ed un numero double, areaMax; restituisce un Vector contenente i soli oggetti del