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:
-
Scrivere, prendendola dalla lezione 10,
l'interfaccia Stack e salvarla in un file Stack.java
-
Scrivere una propria classe che implementa l'interfaccia Stack
usando array oppure liste linkate (a scelta) seguendo quanto detto nella
lezione 10
-
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.
-
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).