Stack, usa list

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.

OperazioneImplementazione
stack=[]Uno stack vuoto
z.push(x)Aggiunge x allo stackstack.append(x)Aggiunge a destra
x <– z.pop()Restituisce l’ultimo elemento inserito e lo eliminax=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) # []