Una coda è una delle strutture dati fondamentali in molti algoritmi. È molto simile a una fila nella vita reale. Il primo elemento aggiunto a una coda sarà il primo a essere “servito” e rimosso.
Immagina una fila di formiche in coda per prendere un caffè. La prima formica in fila otterrà il caffè e uscirà dalla coda, poi la successiva otterrà il caffè e uscirà, e così via fino a quando la coda sarà vuota e non ci saranno più formiche in attesa di un caffè.
Dichiarare e usare una coda è piuttosto semplice nella maggior parte dei linguaggi, poiché molti linguaggi di uso generale (come Python, C++, Java, ecc.) hanno già implementato la struttura dati della coda per facilitarne l’utilizzo. È comunque possibile implementare la coda autonomamente utilizzando una linked list. Sai immaginare come farlo 🤔?
from queue import Queue
q = Queue() # Create a new queue
q.put(1) # Add 1 to the front of the queue
q.put(2) # Add 2 next
q.put(3) # Add 3 after 2
# Remove elements from the queue using get()
print(q.get()) # prints 1
print(q.get()) # prints 2
print(q.get()) # prints 3
Sfida: Simulazione di una coda
Stai realizzando un sistema che deve tenere traccia dei clienti all’interno del negozio. Questo sistema deve fare due cose: aggiungere un cliente in attesa e rimuovere il primo cliente in coda quando è stato servito. Ogni volta che rimuovi un cliente, devi stamparne il nome.
Input
La prima riga dell’input contiene un singolo intero n (1 ≤ n ≤ 100 000).
Le successive n righe contengono le operazioni - o add o pop:
L’operazione add è seguita da un nome, e devi aggiungere il cliente alla coda.
L’operazione pop contiene solo la parola pop e nulla più.
Si garantisce che ci sia sempre almeno un cliente in coda prima di ogni operazione pop, quindi le operazioni sono sempre valide.
I nomi non superano i 20 simboli.
Output
Per ogni operazione pop, il programma deve stampare il nome del cliente che si trova in testa alla coda.
Esempi
Input
Output
9
add Steven
add Sam
pop
add Sergio
add Don
pop
add John
pop
pop