pilas-colas python

 

 PILA (Stack) - LIFO

"Last In, First Out" - Último en entrar, primero en salir
Analogía: Pila de platos - sacas el de arriba

Declaración y Uso:

python
# CON LISTA (recomendado para pilas)
pila = []                    # Crear pila vacía
pila = [1, 2, 3]            # Pila con elementos

# Operaciones principales
pila.append(4)              # Apilar → [1, 2, 3, 4]
elemento = pila.pop()       # Desapilar → 4, pila = [1, 2, 3]
tope = pila[-1]             # Ver tope sin sacar → 3

Ejemplo Práctico:

python
# Historial de navegación
historial = []

# Navegar páginas
historial.append("google.com")
historial.append("youtube.com") 
historial.append("github.com")

# Volver atrás
pagina_actual = historial.pop()  # github.com
pagina_actual = historial.pop()  # youtube.com

📚 COLA (Queue) - FIFO

"First In, First Out" - Primero en entrar, primero en salir
Analogía: Fila del supermercado - atienden al primero

Declaración y Uso:

python
from collections import deque

# CON DEQUE (recomendado para colas)
cola = deque()                    # Crear cola vacía
cola = deque([1, 2, 3])          # Cola con elementos

# Operaciones principales
cola.append(4)                   # Encolar → deque([1, 2, 3, 4])
elemento = cola.popleft()        # Desencolar → 1, cola = deque([2, 3, 4])
frente = cola[0]                 # Ver frente sin sacar → 2

Ejemplo Práctico:

python
from collections import deque

# Cola de impresión
impresora = deque()

# Documentos a imprimir
impresora.append("documento1.pdf")
impresora.append("documento2.docx")
impresora.append("foto.jpg")

# Imprimir en orden
while impresora:
    siguiente = impresora.popleft()
    print(f"Imprimiendo: {siguiente}")
# Output: documento1.pdf, documento2.docx, foto.jpg

⚡ COMPARACIÓN RÁPIDA

OperaciónPila (Lista)Cola (Deque)
Agregarappend()append()
Sacarpop()popleft()
Ver próximo[-1][0]
PrincipioLIFOFIFO

🎯 EJEMPLO COMPARATIVO

python
# MISMO CÓDIGO, COMPORTAMIENTO DIFERENTE
elementos = [1, 2, 3]

# COMO PILA
pila = elementos.copy()
pila.append(4)          # [1, 2, 3, 4]
print(pila.pop())       # 4 (saca el último)

# COMO COLA  
cola = deque(elementos)
cola.append(4)          # deque([1, 2, 3, 4])
print(cola.popleft())   # 1 (saca el primero)

💡 RESUMEN FINAL

  • PILA: Usa lista con append() y pop() - Como pila de platos

  • COLA: Usa deque con append() y popleft() - Como fila de personas

  • Regla mnemotécnica:

    • Pila = POP del final

    • Cola = POP del LEFT

Comentarios

Entradas populares de este blog

¿Qué es un Closure?

4 tipos de colecciones de datos más

Funciones en Python: con y sin paréntesis