Pilas, colas y listas enlazadas explicadas con ejemplos

A complex array of wooden scaffolding structures silhouetted against a clear blue sky.
Foto de alexander ermakov en Pexels

En el mundo de la programación, las estructuras de datos son fundamentales para almacenar y manipular información de manera eficiente. En este artículo, vamos a explorar tres estructuras de datos básicas: pilas, colas y listas enlazadas. Estas estructuras son esenciales para cualquier desarrollador frontend, ya que se utilizan en una variedad de situaciones, desde la gestión de eventos hasta el almacenamiento de datos en aplicaciones web.

Pilas (Stacks)

Una pila es una estructura de datos que sigue el principio de LIFO (Last In, First Out), es decir, el último elemento que se agrega es el primero que se elimina. Imagina una pila de platos: cuando agregas un plato nuevo, lo colocas encima de los demás, y cuando necesitas un plato, lo sacas de la parte superior.

En programación, las pilas se utilizan para almacenar temporalmente datos que se necesitan en un momento específico. Por ejemplo, en un navegador web, se puede utilizar una pila para almacenar los estados de la página actual y los estados de las páginas anteriores, de manera que cuando el usuario haga clic en el botón de retroceso, se pueda regresar al estado anterior.

const pila = [];
pila.push('elemento1');
pila.push('elemento2');
console.log(pila.pop()); // 'elemento2'

Colas (Queues)

Una cola es una estructura de datos que sigue el principio de FIFO (First In, First Out), es decir, el primer elemento que se agrega es el primero que se elimina. Imagina una cola de personas esperando para entrar en un concierto: la persona que llega primero es la primera en entrar.

En programación, las colas se utilizan para gestionar tareas o eventos que deben ser procesados en un orden específico. Por ejemplo, en un servidor web, se puede utilizar una cola para gestionar las solicitudes de los usuarios, de manera que se procesen en el orden en que se recibieron.

const cola = [];
cola.push('elemento1');
cola.push('elemento2');
console.log(cola.shift()); // 'elemento1'

Listas enlazadas (Linked Lists)

Una lista enlazada es una estructura de datos en la que cada elemento apunta al siguiente elemento. Imagina una lista de amigos en una aplicación social: cada amigo está conectado a otro amigo, y así sucesivamente.

En programación, las listas enlazadas se utilizan para almacenar datos que deben ser accedidos en un orden específico, pero que no necesitan ser almacenados en una ubicación contigua de la memoria. Por ejemplo, en un navegador web, se puede utilizar una lista enlazada para almacenar los elementos de una página web, de manera que se puedan acceder y manipular de manera eficiente.

class Nodo {
constructor(valor) {
this.valor = valor;
this.siguiente = null;
}
}
const lista = new Nodo('elemento1');
lista.siguiente = new Nodo('elemento2');
console.log(lista.valor); // 'elemento1'
console.log(lista.siguiente.valor); // 'elemento2'

En resumen, las pilas, colas y listas enlazadas son estructuras de datos básicas que se utilizan en una variedad de situaciones en la programación. Cada una tiene sus propias características y ventajas, y es importante entender cómo funcionan y cómo se pueden utilizar para resolver problemas de manera eficiente.