La cola es una de las estructuras de datos fundamentales en muchos algoritmos. Es muy parecida a una cola en la vida real. El primer elemento que se agrega a la cola será el primero en ser “atendido” y eliminado de ella.
Imagina una fila de hormigas esperando para comprar café. La primera hormiga en la fila obtendrá su café y saldrá de la cola, luego la siguiente hormiga obtendrá su café y también saldrá, y así sucesivamente hasta que la cola quede vacía y no haya más hormigas esperando.
Declarar y usar una cola resulta muy sencillo en la mayoría de los lenguajes, ya que casi todos los lenguajes de uso general (como Python, C++, Java, etc.) incluyen la estructura de datos de cola para facilitar su uso. Aun así, podemos implementarla nosotros mismos usando una lista enlazada. ¿Se te ocurre cómo hacerlo 🤔?
from queue import Queue
q = Queue() # Crea una nueva cola
q.put(1) # Agrega 1 al frente de la cola
q.put(2) # Agrega 2 después
q.put(3) # Agrega 3 después de 2
# Elimina elementos de la cola usando get()
print(q.get()) # imprime 1
print(q.get()) # imprime 2
print(q.get()) # imprime 3
Challenge: Queue Simulation
Estás implementando un sistema para llevar un registro de los clientes en una tienda. Tu sistema debe ser capaz de hacer dos cosas: agregar un cliente a la fila de espera y eliminar al primer cliente de la fila cuando haya sido atendido. Cada vez que se elimine a un cliente, se debe imprimir su nombre.
Entrada
La primera línea de la entrada contiene un solo entero n (1 ≤ n ≤ 100 000).
Las siguientes n líneas contienen operaciones, que pueden ser add o pop:
La operación add va seguida de un nombre, e indica que debes agregar al cliente a la fila de espera.
La operación pop solo contiene el nombre de la operación y nada más.
Está garantizado que la operación pop siempre contará con al menos un cliente en la fila, de modo que las operaciones son válidas.
Los nombres no superan los 20 símbolos.
Salida
Por cada operación pop, el programa debe imprimir el nombre del cliente que se encuentre al frente de la fila.
Ejemplos
Entrada
Salida
9
add Steven
add Sam
pop
add Sergio
add Don
pop
add John
pop
pop