Saltar al contenido

Comprender las pilas y las colas en Python

Solución:

En general, las pilas son LIFO y las colas FIFO.

En Python, puede usar el colecciones módulo para experimentar con pilas y colas:

>>> from collections import deque
>>> stack = deque()
>>> stack.append(10)
>>> stack.append(20)
>>> stack.append(30)
>>> stack
deque([10, 20, 30])
>>> stack.pop()           # LIFO
30
>>> stack.pop()
20
>>> 
>>> queue = deque()
>>> queue.append(10)
>>> queue.append(20)
>>> queue.append(30)
>>> queue
deque([10, 20, 30])
>>> queue.popleft()       # FIFO
10
>>> queue.popleft()
20

Consulte los siguientes enlaces para obtener más información:

Apilar
Cola

Visualmente estas dos estructuras de datos se pueden ver de la siguiente manera:

Apilar:

Pila visual

Descripción:

Hay variaciones de esta estructura de datos. Sin embargo, en términos simples, como se puede observar en la imagen provista, cuando agregas a esta estructura de datos, colocas encima de lo que ya está allí y cuando eliminas también tomas de la parte superior. Puede verlo como una pila de libros que revisa uno por uno, comenzando desde arriba hasta abajo.

Cola

Cola visual

Descripción:

También hay variaciones en esta estructura de datos en particular, sin embargo en términos simples, como puede ver en la imagen provista, cuando agrega a esta estructura de datos, el nuevo elemento va al principio y cuando elimina es el último elemento de la lista que está siendo eliminado. Puedes imaginarlo como una cola que tienes en una tienda donde te paras detrás de un montón de gente esperando tu turno para venir al mostrador para pagar tus artículos.

Para probar esta línea por línea, aquí hay implementaciones de las clases (envoltorios alrededor de deque) que se utilizan en la tarea:

from collections import deque

class Queue(deque):
    enqueue = deque.append
    dequeue = deque.popleft
    def front(self):
        return self[-1]
    def size(self):
        return len(self)

class Stack(deque):
    push = deque.append
    def is_empty(self):
        return not self
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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