Estructura tipo pila
1. Qué es una pila? #
Una pila (en inglés, stack) es una estructura de datos que sigue el principio de LIFO (Last In, First Out), que significa "Último en entrar, primero en salir". Piensa en una pila de platos: el último plato que colocas en la pila es el primero que sacas. Las pilas son útiles cuando necesitas almacenar datos de manera temporal y luego retirarlos en el orden inverso en que se agregaron.
2. Cómo se implementa una pila en Python? #
En Python, puedes implementar una pila utilizando una lista (list). Las operaciones principales de una pila son:
- Apilar (push): Añadir un elemento al final de la pila.
- Desapilar (pop): Eliminar y devolver el último elemento añadido.
Ejemplos de uso de pilas #
-
Crear una pila y apilar elementos:
1pila = [] 2pila.append(1) 3pila.append(2) 4pila.append(3) 5print(pila)Salida de consola [1, 2, 3]
- ¿Qué hace?: Este código crea una pila vacía (una lista) y luego apila los números
1,2, y3. Finalmente, muestra la pila en la pantalla.
- ¿Qué hace?: Este código crea una pila vacía (una lista) y luego apila los números
-
Desapilar un elemento:
1pila = [1, 2, 3] 2ultimo_elemento = pila.pop() 3print(ultimo_elemento) 4print(pila)Salida de consola 3 [1, 2]
- ¿Qué hace?: Este código desapila el último elemento (
3) de la pila y lo muestra en la pantalla. Luego muestra la pila después de haber quitado ese elemento.
- ¿Qué hace?: Este código desapila el último elemento (
-
Ver el último elemento sin desapilarlo (peek):
1pila = [1, 2, 3] 2ultimo_elemento = pila[-1] 3print(ultimo_elemento)Salida de consola 3
- ¿Qué hace?: Este código muestra el último elemento de la pila (
3) sin quitarlo.
- ¿Qué hace?: Este código muestra el último elemento de la pila (
-
Verificar si la pila está vacía:
1pila = [] 2esta_vacia = len(pila) == 0 3print(esta_vacia)Salida de consola True
- ¿Qué hace?: Este código verifica si la pila está vacía comprobando si la longitud de la pila es
0. MuestraTruesi está vacía,Falsesi no lo está.
- ¿Qué hace?: Este código verifica si la pila está vacía comprobando si la longitud de la pila es
3. Por qué usar pilas? #
Las pilas son útiles cuando necesitas almacenar datos de manera temporal y recuperar esos datos en orden inverso. Se usan en muchas aplicaciones, como deshacer acciones en editores de texto, realizar evaluaciones de expresiones matemáticas, y gestionar la recursión en algoritmos.
4. Operaciones comunes con pilas #
append(x): Añadir el elementoxal final de la pila (operaciónpush).pop(): Eliminar y devolver el último elemento de la pila (operaciónpop).[-1]: Acceder al último elemento de la pila sin eliminarlo (operaciónpeek).len(pila) == 0: Verificar si la pila está vacía.
Resumen del tema
Conceptos clave #
- Principio LIFO (Last In, First Out): el último elemento en entrar es el primero en salir.
- Implementación con Listas:
- Push (apilar):
pila.append(elemento)en tiempo amortizado . - Pop (desapilar):
pila.pop()extrae y devuelve el elemento del tope en . - Peek (cima):
pila[-1]para consultar el tope sin retirarlo. - Empty (vacío):
len(pila) == 0onot pila.
- Push (apilar):
- Casos de Uso: evaluación de expresiones, algoritmos de backtracking, gestión de historial/deshacer y pila de llamadas (call stack).
Qué debes recordar #
En Python una pila se modela eficientemente con una lista usando .append() para apilar y .pop() para desapilar bajo el principio LIFO.