En este tema, aprenderemos sobre las operaciones básicas que se pueden realizar con colas. Las colas son estructuras de datos lineales que siguen el principio FIFO (First In, First Out). Esto significa que el primer elemento en entrar es el primero en salir. Las operaciones básicas que cubriremos son:

  1. Enqueue (Encolar)
  2. Dequeue (Desencolar)
  3. Front (Frente)
  4. Rear (Final)
  5. IsEmpty (Está Vacía)
  6. Size (Tamaño)

  1. Enqueue (Encolar)

La operación de encolar agrega un elemento al final de la cola.

Ejemplo en Python

class Cola:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)
        print(f"Encolado: {item}")

# Ejemplo de uso
cola = Cola()
cola.enqueue(1)
cola.enqueue(2)
cola.enqueue(3)

Explicación

  • __init__: Inicializa una lista vacía para almacenar los elementos de la cola.
  • enqueue: Agrega un elemento al final de la lista y lo imprime.

  1. Dequeue (Desencolar)

La operación de desencolar elimina y devuelve el primer elemento de la cola.

Ejemplo en Python

class Cola:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)
        else:
            return "La cola está vacía"

    def is_empty(self):
        return len(self.items) == 0

# Ejemplo de uso
cola = Cola()
cola.enqueue(1)
cola.enqueue(2)
cola.enqueue(3)
print(f"Desencolado: {cola.dequeue()}")
print(f"Desencolado: {cola.dequeue()}")

Explicación

  • dequeue: Elimina y devuelve el primer elemento de la lista si la cola no está vacía. Si está vacía, devuelve un mensaje indicando que la cola está vacía.
  • is_empty: Verifica si la cola está vacía.

  1. Front (Frente)

La operación de frente devuelve el primer elemento de la cola sin eliminarlo.

Ejemplo en Python

class Cola:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)
        else:
            return "La cola está vacía"

    def front(self):
        if not self.is_empty():
            return self.items[0]
        else:
            return "La cola está vacía"

    def is_empty(self):
        return len(self.items) == 0

# Ejemplo de uso
cola = Cola()
cola.enqueue(1)
cola.enqueue(2)
cola.enqueue(3)
print(f"Frente: {cola.front()}")

Explicación

  • front: Devuelve el primer elemento de la lista sin eliminarlo si la cola no está vacía. Si está vacía, devuelve un mensaje indicando que la cola está vacía.

  1. Rear (Final)

La operación de final devuelve el último elemento de la cola sin eliminarlo.

Ejemplo en Python

class Cola:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)
        else:
            return "La cola está vacía"

    def front(self):
        if not self.is_empty():
            return self.items[0]
        else:
            return "La cola está vacía"

    def rear(self):
        if not self.is_empty():
            return self.items[-1]
        else:
            return "La cola está vacía"

    def is_empty(self):
        return len(self.items) == 0

# Ejemplo de uso
cola = Cola()
cola.enqueue(1)
cola.enqueue(2)
cola.enqueue(3)
print(f"Final: {cola.rear()}")

Explicación

  • rear: Devuelve el último elemento de la lista sin eliminarlo si la cola no está vacía. Si está vacía, devuelve un mensaje indicando que la cola está vacía.

  1. IsEmpty (Está Vacía)

La operación de verificar si la cola está vacía devuelve True si la cola no contiene elementos, y False en caso contrario.

Ejemplo en Python

class Cola:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return len(self.items) == 0

# Ejemplo de uso
cola = Cola()
print(f"¿La cola está vacía? {cola.is_empty()}")
cola.enqueue(1)
print(f"¿La cola está vacía? {cola.is_empty()}")

Explicación

  • is_empty: Devuelve True si la lista está vacía y False en caso contrario.

  1. Size (Tamaño)

La operación de tamaño devuelve el número de elementos en la cola.

Ejemplo en Python

class Cola:
    def __init__(self):
        self.items = []

    def size(self):
        return len(self.items)

# Ejemplo de uso
cola = Cola()
print(f"Tamaño de la cola: {cola.size()}")
cola.enqueue(1)
cola.enqueue(2)
print(f"Tamaño de la cola: {cola.size()}")

Explicación

  • size: Devuelve el número de elementos en la lista.

Ejercicio Práctico

Ejercicio 1

Implementa una clase Cola en Python que incluya todas las operaciones básicas mencionadas anteriormente. Luego, crea una instancia de la clase y realiza las siguientes operaciones:

  1. Encolar los números 10, 20 y 30.
  2. Desencolar un elemento.
  3. Mostrar el elemento en el frente de la cola.
  4. Mostrar el elemento en el final de la cola.
  5. Verificar si la cola está vacía.
  6. Mostrar el tamaño de la cola.

Solución

class Cola:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)
        else:
            return "La cola está vacía"

    def front(self):
        if not self.is_empty():
            return self.items[0]
        else:
            return "La cola está vacía"

    def rear(self):
        if not self.is_empty():
            return self.items[-1]
        else:
            return "La cola está vacía"

    def is_empty(self):
        return len(self.items) == 0

    def size(self):
        return len(self.items)

# Ejemplo de uso
cola = Cola()
cola.enqueue(10)
cola.enqueue(20)
cola.enqueue(30)
print(f"Desencolado: {cola.dequeue()}")
print(f"Frente: {cola.front()}")
print(f"Final: {cola.rear()}")
print(f"¿La cola está vacía? {cola.is_empty()}")
print(f"Tamaño de la cola: {cola.size()}")

Explicación

Este ejercicio te ayudará a consolidar tu comprensión de las operaciones básicas con colas. Asegúrate de probar cada operación y verificar que los resultados sean los esperados.

Conclusión

En esta sección, hemos cubierto las operaciones básicas que se pueden realizar con colas: encolar, desencolar, obtener el frente, obtener el final, verificar si está vacía y obtener el tamaño. Estas operaciones son fundamentales para trabajar con colas y son ampliamente utilizadas en diversas aplicaciones de programación. En la próxima sección, exploraremos las colas circulares y sus aplicaciones.

© Copyright 2024. Todos los derechos reservados