Le operazioni minime per uno stack (LIFO, last in first out).
La struttura dati nativa collections.deque può essere utilizzata come uno stack.
| Operazione | Implementazione | ||
|---|---|---|---|
stack=collections.deque() | Uno stack vuoto | ||
| z.push(x) | Aggiunge x allo stack | stack.append(x) | Aggiunge a destra |
| x <– z.pop() | Restituisce l’ultimo elemento inserito e lo elimina | x=stack.pop() | Toglie da destra… |
| z.is_empty() | Lo stack è vuoto? | len(stack) == 0 |
Test 1
import collections
stack=collections.deque() # Lo stack vuoto
stack.append(18) # [18]
stack.append(1) # [18, 1]
stack.append(28) # [18, 1, 28]
print(len(stack) == 0) # False
print(stack.pop()) # [18, 1] 28
print(len(stack) == 0) # False
print(stack.pop()) # [18] 1
print(len(stack) == 0) # False
print(stack.pop()) # [] 18
print(len(stack) == 0) # True
Test 2
import collections
stack=collections.deque() # deque([])
for x in range(5):
stack.append(x)
print(stack) # deque([0, 1, 2, 3, 4])
while(len(stack) != 0):
print(stack.pop() ) # 4 3 2 1 0
print(stack) # deque([])