Pilas
Una pila (stack) es una estructura de datos que sigue el principio LIFO (Last In, First Out), que significa que el último elemento que se inserta en la pila es el primero en salir.
Se puede pensar en la pila como una caja donde solo se puede acceder al elemento que está en la "cima" (top), de manera similar a una pila de libros donde solo se puede sacar el libro que está en la parte superior.
Características principales
- Principio LIFO (Last In, First Out): El último elemento que se añade es el primero en ser retirado.
- Acceso restringido: Solo se puede acceder al elemento que está en la cima de la pila. No se puede acceder directamente a los elementos en medio o en la parte inferior de la pila.
Operaciones básicas
- Push: Añade un elemento en la cima de la pila.
- Pop: Elimina el elemento en la cima de la pila y retorna ese elemento.
- Peek o Top: Visualiza el elemento en la cima de la pila sin eliminarlo.
- IsEmpty: Verifica si la pila está vacía.
- Size: Determina el número de elementos en la pila.
Usos comunes de las pilas
- Deshacer operaciones: En edición de texto u otros contextos donde se quieren deshacer cambios, las pilas permiten revertir las acciones en el orden correcto.
- Recursión: Las llamadas a funciones recursivas utilizan la pila de llamadas para almacenar el estado de las funciones activas.
- Algoritmos de búsqueda: Algoritmos como la búsqueda en profundidad (DFS, Depth First Search) usan pilas para seguir el camino a través de los nodos.