Fondamenti di Informatica I
Corso di Laurea in Ingegneria Informatica
Canale G-O, A.A. 2002/03
Si vogliono rappresentare oggetti Pila di stringhe, cioè sequenze di elementi di tipo stringa che vengono gestite con la politica LIFO (Last In First Out), ossia l'ultimo elemento entrato è il primo ad uscire. Le funzionalità degli oggetti Pila di stringhe devono essere le seguenti:
true
se la pila è vuota; false
altrimenti;RuntimeException
;RuntimeException
;toString
di
Object
) che restituisce una stringa formata da tutte le
stringhe che sono elementi della pila ciascuna in una riga separata.Parte 1.
Si realizzi una classe Pila
facendo uso di liste collegate, e
adottando uno schema realizzativo con side-effect senza condivisione di
memoria.
Per provare la classe si faccia uso della seguente classe cliente (se
necessario modificarla in modo che le chiamate rispettino nome e segnatura dei
metodi pubblici della classe Pila
realizzata):
public class TestPila { public static void main (String[] args) { Pila p = new Pila(); // inserisce elementi nella pila p.push("A"); p.push("B"); p.push("C"); System.out.println(p); // svuota la pila while (!p.estVuota()) { System.out.println(p.top()); p.pop(); } System.out.println(p); } }
Parte 2.
Si realizzi una classe PilaF
facendo uso di liste collegate, e
adottando uno schema realizzativo funzionale con condivisione di memoria.
Per provare la classe si faccia uso della seguente classe cliente (se
necessario modificarla in modo che le chiamate rispettino nome e segnatura dei
metodi pubblici della classe Pila
realizzata):
public class TestPilaF { public static void main (String[] args) { PilaF p = new PilaF(); // inserisce elementi nella pila p = p.push("A").push("B").push("C"); System.out.println(p); // svuota la pila while (!p.estVuota()) { System.out.println(p.top()); p = p.pop(); } System.out.println(p); } }