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) # []