welcome: please sign in
location: attachment:20120124-LAB-Stack.txt of InformaticaCDLmatematica

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.