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:
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
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