JS: Arrays
Teoría: Stack
En programación, no solo nos preocupamos por cómo resolver un problema, sino también en cómo almacenar y organizar los datos para que el código sea eficiente y claro. Ahí es donde entran en juego las estructuras de datos.
¿Qué es una estructura de datos?
Seguro que ya conoces al menos una estructura de datos: el array.
- Listas
- Tablas hash
- Árboles
- Grafos
- Pilas (
stacks) - Colas (
queues)
Cada una de ellas es útil en diferentes situaciones y ayuda a que nuestro código sea más eficiente.
Diferenciando conceptos clave
Para entender bien este tema, debemos diferenciar tres conceptos similares pero distintos:
¿Qué es una pila?
La pila (o stack en inglés) es una estructura de datos en la que solo podemos:
- Agregar elementos (push)
- Eliminar elementos (pop)

Ejemplo en la vida real
Imagina una pila de platos en un restaurante:
- Colocas un plato sobre la pila.
- Agregas otro plato encima.
- Para sacar un plato, solo puedes tomar el que está en la parte superior.
Así funciona una pila: el último que pusimos es el primero que sacamos.
Otro ejemplo común en informática es el historial del navegador. Cada página nueva que visitas se agrega a una pila. Cuando presionas el botón "Atrás", retrocedes a la última página añadida.
Pilas en la programación
En programación, las pilas se usan mucho. JavaScript, por ejemplo, usa una pila para ejecutar funciones:
- Llamamos una función.
- Esa función llama otra función.
- Esta historia sigue hasta llegar a la función más profunda.
- Las funciones empiezan a terminar en orden inverso.
Esto se conoce como pila de llamadas (call stack).
Operaciones en una pila
Trabajar con una pila implica las siguientes operaciones:
Implementando una pila en JavaScript
En JavaScript, podemos implementar una pila usando un array. Las operaciones push y pop ya están incluidas en los arrays.
Resumen
- Una pila sigue el principio LIFO (Last In, First Out).
- Las operaciones principales de una pila son push, pop, peek, isEmpty y size.
- JavaScript permite implementar una pila usando arrays con
push()ypop(). - Las pilas se usan en la pila de llamadas, navegación del historial y problemas de balanceo de paréntesis.
¡Ahora tienes una buena base para entender las pilas y cómo usarlas en la programación!