Coda doppia, usa list

Le operazioni minime per una coda doppia (double ended queue).
Si può scegliere se aggiungere/togliere in prima/ultima posizione.
La struttura dati lista (list) di Python si presta come contenitore dei dati e può essere facilmente manipolata per realizzare le operazioni richieste.

OperazioneImplementazione
coda_doppia=[]Una coda doppia vuota
z.append_right(x)Aggiunge x a destra, al primo posto della codacoda_doppia.append(x)Aggiunge a destra…
z.append_left(x)Aggiunge x a sinistra, all’ultimo posto della codacoda_doppia.insert(0, x) Aggiunge a sinistra…
x <– z.remove_right()Restituisce l’elemento a destra, al primo posto, e lo eliminax=coda_doppia.pop()Toglie da destra…
x <– z.remove_left()Restituisce l’elemento a sinistra, all’ultimo posto, e lo eliminax=coda_doppia.pop(0) Toglie da sinistra…
z.is_empty()La coda è vuota?

Test 1

coda_doppia=[]                # []

coda_doppia.insert(0, 18)     # [18] 
coda_doppia.insert(0, 1)      # [1, 18] 
coda_doppia.append(28)        # [1, 18, 28]

print(len(coda_doppia) == 0)  #             False
print(coda_doppia.pop())      # [1, 18]     28

print(len(coda_doppia) == 0)  #             False
print(coda_doppia.pop(0))     # [18]        1

print(len(coda_doppia) == 0)  #             False
print(coda_doppia.pop())      # []          18

print(len(coda_doppia) == 0)  #             True

Test 2

Usa la coda doppia come uno stack

coda_doppia=[]                # []

for x in range(5): 
    coda_doppia.append(x)
print(coda_doppia)            # [0, 1, 2, 3, 4]

while(len(coda_doppia) != 0):
    print(coda_doppia.pop())  # 4 3 2 1 0
print(coda_doppia)            # []

Test 3

Usa la coda doppia come una coda

coda_doppia=[]                # []

for x in range(5): 
    coda_doppia.insert(0, x) 
print(coda_doppia)            # [4, 3, 2, 1, 0]

while(len(coda_doppia) != 0):
    print(coda_doppia.pop())  # 0 1 2 3 4 
print(coda_doppia)            # []