Implementare la pila come struttura di dati generica adatta a trattare qualunque tipo di oggetto.
La pila (stack) è una struttura di dati dinamica gestita usando la modalità Last-In First-Out. Ha la caratteristica che l'inserimento e l'estrazione di dati avvengono da un unica "estremità".
Pila |
Vector<Object>elementi |
push() // inserisce elemento in cima pop() // preleva un elemento eliminandolo dalla cima top() // restituisce l'elemento in cima size() // restituisce il n di elementi empty() // restituisce true o false, se vuota o meno. |
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Il numero degli elementi nella pila viene controllato con il metodo size() e il valore viene memorizzato in una variabile intera chiamata size:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
L'operazione pop legge l'elemento che si trova in posizione size-1, lo cancella e lo restituisce.
La cosa importante da sottolineare in questa implementazione della classe Pila è il tipo di dato associato al singolo elemento che può essere aggiunto. I singoli elementi sono gestiti usando la classe Object. Questo significa che qualunque oggetto può essere aggiunto alla pila, in quanto la classe Object è la sopraclasse di qualsiasi altra classe.
Al momento di eseguire l'operazione push, viene automaticamente applicato il casting verso la classe Object. Quando viene preleavato un elemento, la pila lo restituisce come oggetto di classe Object: sarà compito di chi riceve l'oggetto convertirlo tramite un ulteriore casting verso la classe di origine.
Una pila realizzata in questo modo è una struttura di dati generica che può essere utilizzata più volte per trattare qualunque tipo di oggetto.
Il codice completo della classe Pila è il seguente:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Se avete bisogno di chiarimenti, non esitate a chiedermeli, un saluto e alla prossima. :bye: