Il tipo di dato astratto Pila¶
E’ definito dalla seguente struttura e dalle seguenti operazioni. Una pila è strutturata come una collezione ordinata di elementi dove gli elementi sono aggiunti e rimossi dall’ultimo inserito. La posizione dell’ultimo elemento è chiamata “top” o cima. Gli elementi nella pila sono ordinati in modo LIFO, ovvero “last in first out”. Le operazioni sono definite sotto.
Stack()
crea una nuova pila vuota. Non necessita di parametri e ritorna una pila vuota.push(item)
aggiunge un nuovo elemento in cima alla pila. Necessita dell’elemento da aggiungere e non ritorna nulla.pop()
rimuove l’elemento in cima alla pila. Non ha bisogno di parametri e ritorna l’elemento. La pila viene modificata.peek()
ritorna l’elemento in cima alla pila ma non lo rimuove. Non ha bisogno di parametri e la pila non viene modificata.isEmpty()
controlla se la pila è vuota. Non ha bisogno di parametri e ritorna un valore booleano.size()
ritorna il numero di elemento nella pila. Non ha bisogno di parametri e ritorna un intero.
Per esempio, se s
è una pila che è stata creata e inizia vuota, allora Tabella 1 mostra i risultati della sequenza di operazioni. Nella parte stack contents, la cima della pila è l’elemento più a destra.
Stack Operation | Stack Contents | Return Value |
---|---|---|
s.isEmpty() |
[] |
True |
s.push(4) |
[4] |
|
s.push('dog') |
[4,'dog'] |
|
s.peek() |
[4,'dog'] |
'dog' |
s.push(True) |
[4,'dog',True] |
|
s.size() |
[4,'dog',True] |
3 |
s.isEmpty() |
[4,'dog',True] |
False |
s.push(8.4) |
[4,'dog',True,8.4] |
|
s.pop() |
[4,'dog',True] |
8.4 |
s.pop() |
[4,'dog'] |
True |
s.size() |
[4,'dog'] |
2 |