- ¿Qué es una estructura de datos?
- ¿Qué es una pila?
- Pilas en la programación
- Operaciones en una pila
- Implementando una pila en JavaScript
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?
Algunas estructuras de datos permiten acceder rápidamente a los datos, mientras que otras pueden facilitar ciertas operaciones específicas.
Seguro que ya conoces al menos una estructura de datos: el array.
Sin embargo, hay muchas más estructuras de datos, como:
- 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:
| Concepto | Explicación |
|---|---|
| Estructura de datos | Un método concreto para organizar y almacenar datos en la memoria. |
| Tipo de dato | Una clasificación de los datos en un lenguaje de programación (por ejemplo, números, cadenas). |
| Tipo de dato abstracto (TDA) | Un modelo teórico que describe cómo deben comportarse los datos, sin importar cómo se implementan en la práctica. |
Un ejemplo clásico de TDA es la pila, que vamos a estudiar en esta lección.
¿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:
| Operación | Descripción |
|---|---|
| Push | Agrega un elemento a la pila. |
| Pop | Saca el último elemento agregado. |
| Peek | Obtiene el último elemento sin sacarlo. |
| isEmpty | Verifica si la pila está vacía. |
| Size | Devuelve el número de elementos en la pila. |
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.
const stack = [];
stack.push(3);
console.log(stack); // [3]
stack.push('Winterfall');
console.log(stack); // [3, 'Winterfall']
stack.push(true);
console.log(stack); // [3, 'Winterfall', true]
const element1 = stack.pop();
console.log(element1); // true
console.log(stack); // [3, 'Winterfall']
const element2 = stack.pop();
console.log(element2); // 'Winterfall'
console.log(stack); // [3]
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!
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.