Estructuras de Datos: Listas Enlazadas en JavaScript
Clase 15 de 29 • Curso de Estructuras de Datos con JavaScript
Resumen
¿Qué es una Linked List?
¿Te has preguntado alguna vez cómo Google Chrome sabe a qué página regresar cuando haces clic en el botón de "Atrás"? Este concepto clave se asemeja al funcionamiento de una estructura de datos llamada "Linked List" o lista enlazada. A diferencia de los arrays o las tablas hash, las linked lists son estructuras lineales formadas por nodos, y cada nodo no solo contiene un valor, sino también un puntero al siguiente nodo en la secuencia. Entender cómo funcionan te proporcionará una nueva perspectiva sobre la lógica detrás de varias aplicaciones tecnológicas.
¿Cómo se estructura una Linked List?
Una linked list se compone de múltiples nodos conectados. Cada nodo consta de dos partes: un valor y un puntero denominado next
, que apunta al siguiente nodo en la lista. La lista tiene dos extremos: la 'cabeza' o head
, que es el primer nodo, y la 'cola' o tail
, que es el último nodo, cuyo puntero next
apunta a null
.
Aquí puedes ver un ejemplo de cómo se estructura una linked list:
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
class LinkedList {
constructor() {
this.head = null;
this.tail = null;
}
}
¿Cuáles son los métodos importantes en una Linked List?
Manipular una linked list es diferente a trabajar con arrays o tablas hash. Aquí resaltamos algunos métodos clave para operar con una lista enlazada:
- Prepend: Añade un nodo al inicio de la lista, convirtiéndolo en el nuevo
head
. - Append: Agrega un nodo al final, convirtiéndolo en el nuevo
tail
. - Lookup Search: Permite buscar un nodo específico recorriendo la lista desde la
head
hasta encontrar el valor deseado. - Insert: Inserta un nodo en una posición específica dentro de la lista.
- Delete: Elimina un nodo, liberando su espacio de memoria.
¿Cómo funciona el recorrido de nodos?
En una single linked list, el recorrido para encontrar un nodo es unidireccional. Para localizar un nodo específico, debes iniciar desde la head
y viajar nodo por nodo hasta encontrar el valor buscado. Esto significa que si necesitas regresar a un nodo anterior, tendrías que empezar nuevamente desde la head
, ya que no existen punteros que conecten cada nodo con el anterior.
Ejemplo práctico en la vida real
Una aplicación tangible de una linked list es la navegación en un navegador web. Cuando visitas distintas páginas y usas los botones de "Atrás" y "Adelante", estás operando con una estructura similar a una single linked list. Para regresar a la página anterior, debes ir paso a paso atrás, y para avanzar, haces lo mismo pero en dirección opuesta.
Conclusión final
Esta comprensión básica de cómo funcionan las linked lists te abre nuevas puertas para entender otras estructuras y aplicaciones tecnológicas. La práctica constante al implementar estos conceptos en JavaScript o cualquier otro lenguaje te permitirá dominar esta poderosa estructura de datos. ¡Sigue explorando, y nunca dejes de aprender!