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:

queue

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:

queue

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 contrario False.

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