Estructuras de Datos: Stack
Estructuras de Datos: Stack en JavaScript
En ciencias de la computación, una de las estructuras más utilizadas es el Stack (Pila). Se basa en el principio de que el último elemento en entrar es el primero en salir.
Para esta lección, utilizaremos estos 5 términos clave:
- Stack (Pila): Una colección lineal de elementos que sigue el principio LIFO.
- LIFO (Last-In, First-Out): Concepto donde el último elemento añadido es el primero en ser removido.
- Push (Empujar): La operación de añadir un elemento a la parte superior de la estructura.
- Pop (Extraer): La operación de eliminar el elemento situado en la parte superior.
- Peek (Mirar): Consultar el elemento superior sin eliminarlo.
Funcionamiento del Stack
Imagina una pila de platos: solo puedes añadir uno nuevo arriba (Push) y solo puedes quitar el que está encima de todos (Pop). En JavaScript, podemos simular un Stack (Pila) utilizando un Array, pero restringiendo sus métodos para respetar el comportamiento LIFO (Last-In, First-Out).
// Implementación básica de un Stack
const browserHistory = [];
// Operación Push
browserHistory.push('google.com');
browserHistory.push('softarq.site');
// Operación Peek (ver el último sin quitarlo)
console.log(browserHistory[browserHistory.length - 1]); // 'softarq.site'
// Operación Pop
const lastPage = browserHistory.pop();
console.log(lastPage); // 'softarq.site'

Casos de Uso
El Stack (Pila) es fundamental para:
- Deshacer (Undo): En editores de texto, el último cambio realizado es el primero en revertirse.
- Navegación: El botón "atrás" del navegador usa un stack de URLs.
- Recursividad: El motor de JavaScript utiliza el "Call Stack" para gestionar las llamadas a funciones.