Le operazioni minime per uno stack (LIFO, last in first out).
La struttura dati lista (list) si presta come contenitore dei dati e può essere facilmente manipolata per realizzare le operazioni richieste.
| Operazione | Implementazione | ||
|---|---|---|---|
stack=[] | 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
stack=[] # []
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
stack=[] # []
for x in range(5):
stack.append(x)
print(stack) # [0, 1, 2, 3, 4]
while(len(stack) != 0):
print(stack.pop(), end=" ") # 4 3 2 1 0
print()
print(stack) # []