in

Cola en Python – GeeksforGeeks

gfg 200x200 min

Al igual que la pila, la cola es una estructura de datos lineal que almacena elementos en forma de primero en entrar, primero en salir (FIFO). Con una cola, se quita primero el elemento que se agregó menos recientemente. Un buen ejemplo de cola es cualquier cola de consumidores para un recurso en la que se atiende primero al consumidor que llegó primero.

Cola en Python

Las operaciones asociadas con la cola son:

  • Poner en cola: Agrega un elemento a la cola. Si la cola está llena, se dice que es una condición de desbordamiento – Complejidad de tiempo: O (1)
  • Retirar de la cola: Elimina un elemento de la cola. Los elementos se abren en el mismo orden en que se empujan. Si la cola está vacía, se dice que es una condición de subdesbordamiento – Complejidad de tiempo: O (1)
  • Parte delantera: Obtener el artículo del frente de la cola – Complejidad de tiempo: O (1)
  • Trasero: Obtener el último elemento de la cola – Complejidad de tiempo: O (1)

Implementación

Hay varias formas de implementar una cola en Python. Este artículo cubre la implementación de la cola usando estructuras de datos y módulos de la biblioteca de Python.
La cola en Python se puede implementar de las siguientes maneras:

  • lista
  • colecciones.deque
  • queue.Queue

Implementación usando lista

La lista es una estructura de datos incorporada de Python que se puede usar como cola. En lugar de enqueue () y dequeue (), se usa la función append () y pop (). Sin embargo, las listas son bastante lentas para este propósito porque insertar o eliminar un elemento al principio requiere cambiar todos los demás elementos en uno, lo que requiere O (n) tiempo.

Python3

queue = []

queue.append('a')

queue.append('b')

queue.append('c')

print("Initial queue")

print(queue)

print("nElements dequeued from queue")

print(queue.pop(0))

print(queue.pop(0))

print(queue.pop(0))

print("nQueue after removing elements")

print(queue)

Producción:

Initial queue
['a', 'b', 'c']

Elements dequeued from queue
a
b
c

Queue after removing elements
[]




Traceback (most recent call last):
  File "/home/ef51acf025182ccd69d906e58f17b6de.py", line 25, in 
    print(queue.pop(0))
IndexError: pop from empty list



Implementación usando collections.deque

La cola en Python se puede implementar usando la clase deque del módulo de colecciones. Deque se prefiere a la lista en los casos en que necesitamos operaciones de adición y extracción más rápidas desde ambos extremos del contenedor, ya que deque proporciona una complejidad de tiempo O (1) para las operaciones de adición y extracción en comparación con la lista, que proporciona una complejidad de tiempo O (n). . En lugar de enqueue y deque, se utilizan las funciones append () y popleft ().

Python3

from collections import deque

q = deque()

q.append('a')

q.append('b')

q.append('c')

print("Initial queue")

print(q)

print("nElements dequeued from the queue")

print(q.popleft())

print(q.popleft())

print(q.popleft())

print("nQueue after removing elements")

print(q)

Producción:

Initial queue
deque(['a', 'b', 'c'])

Elements dequeued from the queue
a
b
c

Queue after removing elements
deque([])



Traceback (most recent call last):
  File "/home/b2fa8ce438c2a9f82d6c3e5da587490f.py", line 23, in 
    q.popleft()
IndexError: pop from an empty deque



Implementación usando queue.Queue

La cola es un módulo integrado de Python que se utiliza para implementar una cola. queue.Queue (maxsize) inicializa una variable a un tamaño máximo de maxsize. Un tamaño máximo de cero ‘0’ significa una cola infinita. Esta cola sigue la regla FIFO.
Hay varias funciones disponibles en este módulo:

  • tamaño máximo – Número de elementos permitidos en la cola.
  • vacío() – Devuelve True si la cola está vacía, False en caso contrario.
  • lleno() – Devuelve True si hay elementos de tamaño máximo en la cola. Si la cola se inicializó con maxsize = 0 (el valor predeterminado), full () nunca devuelve True.
  • obtener() – Eliminar y devolver un artículo de la cola. Si la cola está vacía, espere hasta que haya un artículo disponible.
  • get_nowait () – Devuelve un artículo si hay uno disponible de inmediato; de lo contrario, sube QueueEmpty.
  • poner (artículo) – Pon un artículo en la cola. Si la cola está llena, espere hasta que haya un espacio libre disponible antes de agregar el artículo.
  • put_nowait (elemento) – Ponga un artículo en la cola sin bloquearlo. Si no hay espacio libre disponible de inmediato, aumente QueueFull.
  • qsize () – Devuelve el número de elementos en la cola.

Python3

from queue import Queue

q = Queue(maxsize = 3)

print(q.qsize())

q.put('a')

q.put('b')

q.put('c')

print("nFull: ", q.full())

print("nElements dequeued from the queue")

print(q.get())

print(q.get())

print(q.get())

print("nEmpty: ", q.empty())

q.put(1)

print("nEmpty: ", q.empty())

print("Full: ", q.full())

Producción:

0

Full:  True

Elements dequeued from the queue
a
b
c

Empty:  True

Empty:  False
Full:  False



¡Atención geek! Fortalece tus cimientos con el Fundación de programación de Python Curso y aprende los conceptos básicos.

Para empezar, los preparativos de su entrevista Mejore sus conceptos de estructuras de datos con el Python DS Curso. Y para comenzar con su viaje de aprendizaje automático, únase al Aprendizaje automático – Curso de nivel básico

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

python – Cambiar el nombre de las columnas en Pandas

CIA vs FBI – Diferencia y comparación