Paola Magillo, Univestita' di Genova, Corso di Programmazione II per SMID, a.a. 2004-2005.

Laboratorio 05:

APPLICAZIONI DELLA PILA

Realizziamo una versione funzionante del programma che controlla se una stringa ha le parentesi bilanciate.

Il procedimento, che fa uso di una pila, e' spiegato nell'ultima parte della lezione 10, ed e' disponibile il codice del programma principale, ControllaParentesi.java.
Nota: questa ultima parte mancava nella versione precedente della lezione 10, mentre e' presente nella versione aggiornata di mercoledi' 1 dicembre di cui vi e' stata consegnata versione cartacea il giorno stesso in aula.
Inoltre in data 6/12/04 (dopo il laboratorio) e' stato corretto un errore, quindi se l'avete scaricato prima, prendere adesso la versione corretta di ControllaParentesi.java.

Che cosa bisogna fare:

  1. Scrivere, prendendola dalla lezione 10, l'interfaccia Stack e salvarla in un file Stack.java
  2. Scrivere una propria classe che implementa l'interfaccia Stack usando array oppure liste linkate (a scelta) seguendo quanto detto nella lezione 10
  3. Cambiare, in ControllaParentesi.java, l'istruzione che costruisce lo stack mettendo il nome della propria classe.
    Nella versione attuale il codice riporta
       Stack aux = new ArrayStack(s.length());
    semplicemente perche' e' stato provato con una implementazione a stack. Mettete invece il nome della vostra classe.
  4. Eseguire il programma. Il programma accetta la stringa da controllare su linea di comando, esempio:
       java ControllaParentesi "([sf{tqabd]}"
    Le virgolette sono necessarie perche' la stringa sia interpretata come un tutt'uno (di solito il linguaggio di script, che gestisce la linea di comando, vede le parentesi come separatori).