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:
# 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 → 3Ejemplo Práctico:
# 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:
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 → 2Ejemplo Práctico:
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ón | Pila (Lista) | Cola (Deque) |
|---|---|---|
| Agregar | append() | append() |
| Sacar | pop() | popleft() |
| Ver próximo | [-1] | [0] |
| Principio | LIFO | FIFO |
🎯 EJEMPLO COMPARATIVO
# 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()ypop()- Como pila de platosCOLA: Usa deque con
append()ypopleft()- Como fila de personasRegla mnemotécnica:
Pila = POP del final
Cola = POP del LEFT
Comentarios
Publicar un comentario