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);
}
}