Queue - Colas
Las colas son una estructura de datos que sigue el principio de FIFO (First In First Out). Es decir, el primer elemento que entra en la cola es el primero en salir. Las colas son útiles para almacenar elementos en un orden específico y recuperarlos en el mismo orden. Las colas se utilizan comúnmente en aplicaciones de procesamiento de datos, como la impresión de documentos, la gestión de tareas y la programación de tareas.
Como usar la documentación
Para leer la guía de uso de la documentación, por favor diríjase a la sección Guía de documentación.
queue.py
- new_queue()
Crea una nueva cola vacía.
Implementa una pila sobre alguna de las implementaciones de listas. Por ejemplo un array_list o una single_linked_list
Implementación de la pila
La implementación de la cola se realiza sobre una array_list. La cola se implementa como una lista array, donde el último elemento de la lista es el último elemento de la cola.
- Returns:
Una nueva cola vacía.
- Return type:
- Example:
# App/logic.py from DataStructures.Queue import queue as queue # Crear una nueva cola queue = queue.new_queue() print(queue) # Salida esperada: {'size': 0, 'elements': []}
- enqueue(my_queue, element)
Agrega un elemento al final de la cola.
- Parameters:
my_queue (queue) – La cola a la que se le agregará el elemento.
element (any) – El elemento que se agregará a la cola.
- Returns:
La cola con el elemento agregado.
- Return type:
- Example:
# App/logic.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) print(cola) # Salida esperada: {'size': 1, 'elements': [{'name': 'John', 'age': 25}]}
- Test Scenarios:
Agrega en elemento a la cola vacía: Se agrega un elemento a una cola vacía.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) print(cola) # Salida esperada: {'size': 1, 'elements': [{'name': 'John', 'age': 25}]}
Agrega en elemento a la cola con elementos: Se agrega un elemento a una cola con elementos.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) cola = queue.enqueue(cola, {'name': 'Jane', 'age': 30}) print(cola) # Salida esperada: # {'size': 2, 'elements': [{'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 30}]}
- dequeue(my_queue)
Elimina y retorna el primer elemento de la cola.
Si la cola está vacía, lanza un error:
EmptyStructureError: queue is empty
.Importante
Para lanzar un error si la cola está vacía, puede utilizar el siguiente código:
raise Exception('EmptyStructureError: queue is empty')
- Parameters:
my_queue (queue) – La cola de la que se eliminará el primer elemento.
- Returns:
Elemento retirado de la cola.
- Return type:
any
- Example:
# App/logic.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) # Eliminar el primer elemento de la cola elemento = queue.dequeue(my_queue) print(elemento) # Salida esperada: {'name': 'John', 'age': 25} print(cola) # Salida esperada: {'size': 0, 'elements': []}
- Test Scenarios:
Retornar el primer elemento de una cola vacia: Se intenta eliminar el primer elemento de una cola vacía.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Eliminar el primer elemento print(queue.dequeue(cola)) # Salida esperada: EmptyStructureError: queue is empty
Eliminar el primer elemento de la cola con elementos: Se elimina el primer elemento de la cola con elementos.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) cola = queue.enqueue(cola, {'name': 'Jane', 'age': 30}) # Eliminar el primer elemento elemento = queue.dequeue(cola) print(elemento)# Salida esperada: {'name': 'John', 'age': 25} print(cola) # Salida esperada: {'size': 1, 'elements': [{'name': 'Jane', 'age': 30}]}
- peek(my_queue)
Retorna el primer elemento de la cola sin eliminarlo.
Si la cola está vacía, lanza un error:
EmptyStructureError: queue is empty
.Importante
Para lanzar un error si la cola está vacía, puede utilizar el siguiente código:
raise Exception('EmptyStructureError: queue is empty')
- Parameters:
my_queue (queue) – La cola de la que se retornará el primer elemento.
- Returns:
Primer elemento de la cola.
- Return type:
any
- Example:
# App/logic.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) # Retornar el primer elemento de la cola elemento = queue.peek(my_queue) print(elemento) # Salida esperada: {'name': 'John', 'age': 25} print(cola) # Salida esperada: {'size': 1, 'elements': [{'name': 'John', 'age': 25}]}
- Test Scenarios:
Retornar el primer elemento de una cola vacia: Se intenta retornar el primer elemento de una cola vacía.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Retornar el primer elemento print(queue.peek(cola)) # Salida esperada: EmptyStructureError: queue is empty
Retornar el primer elemento de la cola con elementos: Se retorna el primer elemento de la cola con elementos.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) cola = queue.enqueue(cola, {'name': 'Jane', 'age': 30}) # Retornar el primer elemento elemento = queue.peek(cola) print(elemento)# Salida esperada: {'name': 'John', 'age': 25} print(cola) # Salida esperada: # {'size': 2, 'elements': [{'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 30}]}
- is_empty(my_queue)
Verifica si la cola está vacía.
- Parameters:
my_queue (queue) – La cola que se verificará si está vacía.
- Returns:
True
si la cola está vacía, de lo contrarioFalse
.- Return type:
bool
- Example:
# App/logic.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Verificar si la cola está vacía print(queue.is_empty(cola)) # Salida esperada: True
- Test Scenarios:
Validación si la cola está vacía: Se verifica si la cola está vacía.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Verificar si la cola está vacía print(queue.is_empty(cola)) # Salida esperada: True
Validación si la no cola está vacía: Se verifica si la cola no está vacía.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) # Verificar si la cola está vacía print(queue.is_empty(cola)) # Salida esperada: False
- size(my_queue)
Retorna el tamaño de la cola.
- Parameters:
my_queue (queue) – La cola de la que se retornará el tamaño.
- Returns:
Tamaño de la cola.
- Return type:
int
- Example:
# App/logic.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) # Retornar el tamaño de la cola print(queue.size(cola)) # Salida esperada: 1
- Test Scenarios:
Retornar el tamaño de la cola vacía: Se retorna el tamaño de una cola vacía.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Retornar el tamaño de la cola print(queue.size(cola)) # Salida esperada: 0
Retornar el tamaño de la cola con elementos: Se retorna el tamaño de una cola con elementos.
# App/tests.py from DataStructures.Queue import queue as queue # Crear una nueva cola cola = queue.new_queue() # Agregar un elemento cola = queue.enqueue(cola, {'name': 'John', 'age': 25}) cola = queue.enqueue(cola, {'name': 'Jane', 'age': 30}) # Retornar el tamaño de la cola print(queue.size(cola)) # Salida esperada: 2