Attachment '20120124-LAB-Stack.txt'
Download 1 Implementare una semplice classe STACK (pila: si veda ad esempio
2 http://it.wikipedia.org/wiki/Stack), adatta a contenere caratteri.
3
4 La classe dovra' implementare ALMENO i seguenti metodi (naturalmente, si preveda
5 una struttura interna adeguata a supportare le funzionalita' richieste):
6
7 - stack(int capacity), costruttore che riceve come input la capienza massima
8 che dovra' caratterizzare lo stack.
9
10 - boolean empty(), che restituisce TRUE se lo stack e' vuoto, FALSE altrimenti.
11
12 - boolean full(), che restituisce TRUE se la capienza dello stack e' stata
13 riempita, FALSE altrimenti. In pratica, se full() restituisce FALSE, e' ancora
14 possibile inserire almeno un elemento.
15
16 - boolean push(char elem), che inserisce un elemento in cima allo stack, e
17 restituisce TRUE se l'inserimento e' andato a buon fine; restituisce FALSE
18 altrimenti (nel caso in cui lo stack fosse gia' pieno).
19
20 - char pop(), che restituisce l'elemento in cima allo stack, rimuovendolo dallo
21 stack stesso. Se lo stack e' vuoto al momento dell'invocazione di pop(), allora
22 questo dovra' restituire il carattere speciale "#" (sharp).
23
24 - char peek(), che restituisce l'elemento in cima allo stack, SENZA pero'
25 rimuoverlo (quindi lo stato dello stack dopo l'invocazione di peek() restera'
26 invariato). Se lo stack e' vuoto al momento dell'invocazione di peek(), allora
27 questo dovra' restituire il carattere speciale "#" (sharp).
28
29 - boolean lookFor(char elem), che restituisce TRUE se l'elemento "elem" e'
30 presente almeno una volta nello stack, FALSE altrimenti.
31
32 - int search(char elem), [**OPZIONALE**] che restituisce la distanza tra la
33 prima occorrenza dell'elemento "elem" e l'elemento in cima allo stack. La
34 distanza e' "1-basata": cioe' se l'elemento cercato e' quello in cima allo
35 stack, allora il metodo restituisce 1 (e non zero, come ci si aspetterebbe).
36 Naturalmente, la ricerca deve essere effettuata dall'alto in basso (dal "top"
37 verso il "bottom"). Se l'elemento "elem" non e' presente nello stack, il metodo
38 deve restituire "-1".
39
40 - int nElements(), [**OPZIONALE**] che restituisce il numero di elementi
41 presenti sullo stack.
42
43 - int capacity(), [**OPZIONALE**] che restituisce la capacita' massima dello
44 stack.
45
46
47 Si implementi poi un "main()" che legga da input una stringa, e ne stampi i
48 caratteri che la compongono in ordine inverso, sfruttando la classe stack
49 precedentemente definita. Si sfruttino poi le procedure fin qui ideate per
50 verificare se la stringa inserita e' palindroma, e comunicarlo correttamente su
51 standard output.
Attached Files
You are not allowed to attach a file to this page.