Estructura y Creación de una Lista Enlazada Simple en JavaScript
Clase 16 de 29 • Curso de Estructuras de Datos con JavaScript
Contenido del curso
Arrays y strings
- 4

Cómo funcionan arrays en memoria de JavaScript
07:23 min - 5

Construcción de Arrays con Clases en JavaScript
09:33 min - 6

Métodos pop y delete en arrays
16:01 min - 7
Playground: crea tu propia implementación de unshift
- 8
Playground: crea tu propia implementación de shift
- 9

Inmutabilidad de Strings y Almacenamiento en Memoria
02:42 min
Hash Table
Linked List
- 15

Estructuras de Datos: Listas Enlazadas en JavaScript
05:20 min - 16

Estructura y Creación de una Lista Enlazada Simple en JavaScript
Viendo ahora - 17

Métodos para Manipular Nodos en Listas Enlazadas
12:12 min - 18

Inserta nodos intermedios sin romper enlaces en JavaScript
16:08 min - 19

Doubly Linked List con punteros bidireccionales
07:51 min
Stacks
Queues
Trees
Graphs
Cierre
Domina cómo una single linked list organiza datos en memoria y por qué el acceso a un elemento exige recorrer nodo a nodo. Aquí verás, paso a paso, la representación con pointers, el papel de head y tail, y la base de la clase MySingleLinkedList para iniciar la estructura y preparar el método appends.
¿Cómo funciona una single linked list en memoria?
Una linked list guarda cada nodo en un “memory slot” independiente con un pointer al siguiente. Solo se conoce el address del head; desde ahí se avanza validando cada nodo hasta encontrar el valor solicitado. Por eso hay que recorrerla.
- Cada nodo tiene un value y un next que apunta al siguiente nodo.
- El sistema solo conoce el address del head. Desde ahí comienza el recorrido.
- La validación es secuencial: “¿es este el valor?, no… hasta que sí y se regresa”.
- El tail termina en null. Ese null permite anexar un nuevo nodo después.
¿Cómo se ve una linked list con pointers y null?
Para visualizar la idea, imagina una lista con 1, 2, 3, 4, 5. Cada número “apunta” al siguiente hasta llegar a null.
- Representación conceptual: 1 → 2 → 3 → 4 → 5 → null.
- El último nodo es la “cola” (tail) y su pointer es null.
Ejemplo de objeto anidado que modela el encadenamiento por next y cierra en null:
const singleLinkedList = {
head: {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null,
},
},
},
},
};
¿Por qué el null es clave para crecer la lista?
- Marca el final actual de la estructura.
- Abre el “espacio” lógico para que el siguiente pointer se asigne a un nuevo nodo.
- Sin null, no habría forma clara de anexar el “seis” después del “cinco”.
¿Cómo construir la clase MySingleLinkedList y preparar el método appends?
Se inicia con una class que recibe un valor para crear la cabeza. Se fuerza la creación del primer nodo al instanciar, se ajusta la cola al mismo nodo y se lleva un conteo de elementos.
class Nodo {
constructor(value) {
this.value = value;
this.next = null;
}
}
class MySingleLinkedList {
constructor(value) {
// cabeza con value y next en null
this.head = {
value: value,
next: null,
};
// cola apunta a la cabeza al inicio
this.tail = this.head;
// conteo de elementos inicial
this.length = 1;
}
}
// Instancia inicial con el primer valor
const mySingleLinkedList = new MySingleLinkedList(1);
¿Qué ventajas aporta la clase auxiliar nodo?
- Evita repetir estructura al crear nuevos nodos.
- Estandariza value y next en un solo lugar.
- Hace más simples los métodos que agregan o manipulan nodos.
¿Qué hará el método appends?
- Recibirá un valor y creará un nuevo nodo.
- Conectará el tail actual con el nuevo nodo por next.
- Convertirá el nodo recién creado en la nueva tail.
- Usará el null del extremo como punto de inserción.
Habilidades y conceptos que consolidas: - Modelado de datos con nodos enlazados por pointers. - Entendimiento de acceso secuencial desde head hasta encontrar el valor. - Diseño de estado interno: head, tail y contador de elementos. - Preparación de método appends para crecer la estructura.
¿Te animas a intentar appends antes de continuar? Prueba a recibir un valor, crear un nodo y convertirlo en la nueva tail. Si te atoras, deja tus dudas en los comentarios y seguimos paso a paso.