Fondamenti di Informatica I
Corso di Laurea in Ingegneria Informatica
Canale G-O, A.A. 2002/03

Esercizio sulle liste collegate


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:


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