Fernando Quinteros Gutierrez
Jimmy Buriticá Londoño
Excelente resumen
Fabio Gomez
Gracias por tus apuntes amigo!
Domina la estructura de datos linked list en JavaScript con una guía clara y directa. Entenderás qué es una single linked list, cómo se enlazan los nodos con pointers y por qué su acceso difiere de arrays y hash tables. Además, repasamos los métodos prepend, append, lookup/search, insert y delete para manipularla con confianza.
¿Qué es una linked list y por qué es diferente?
A diferencia de arrays u objetos en JavaScript, una linked list no ofrece acceso directo por índice o key. Su lógica se basa en nodos enlazados: cada nodo guarda un valor y una referencia next al siguiente nodo. Así se construye una cadena que comienza en head y termina en tail, cuyo next apunta a null.
¿Cómo se conectan los nodos con next?
Cada nodo se compone de dos partes: valor y next. El campo next guarda la referencia al siguiente nodo. Esta referencia es lo que “liga” la lista y permite avanzar nodo a nodo.
¿Qué papel tienen head y tail?
¿Qué métodos de una linked list necesitas dominar?
Manipular una single linked list implica operar sobre nodos y referencias. Estos son los métodos mencionados y su objetivo principal:
¿Cómo se busca sin keys como en una hash table?
Para encontrar un valor debes recorrer la lista: pasas por el primer nodo, luego el segundo, el tercero y así sucesivamente hasta llegar al objetivo. No existe una key que devuelva el valor de forma directa.
¿Cómo se recorre una single linked list paso a paso?
En una single linked list el enlace es unidireccional: cada nodo apunta solo al siguiente. Si llegas al penúltimo nodo y luego necesitas el segundo, no puedes retroceder; debes reiniciar desde el head y recorrer de nuevo.
¿Qué ejemplo cotidiano la ilustra en el navegador?
Cuando navegas en una misma ventana, el botón de regresar te lleva paso a paso a las páginas vistas previamente. Para avanzar, usas adelantar. Esa navegación secuencial refleja el comportamiento de una linked list.
¿Por qué recuerda al funcionamiento de bitcoins?
La idea de nodos interconectados que guardan el valor previo puede recordarte cómo operan los bitcoins: cada nodo conoce el pasado y así se forma una cadena continua.
¿Qué sigue para dominarla en JavaScript?
Primero se practica la lógica de recorrido y enlaces; luego, implementarla en JavaScript resulta más simple. Más adelante, se presentará la double linked list, que permite un comportamiento distinto al poder ir hacia atrás.
¿Te quedó alguna duda sobre los métodos o el recorrido desde el head? Comparte tus preguntas y cuéntame qué parte te gustaría practicar primero.
Fernando Quinteros Gutierrez
Jimmy Buriticá Londoño
Excelente resumen
Fabio Gomez
Gracias por tus apuntes amigo!
Carlos Eduardo Gomez García
Una linked listed suele tener la particularidad de "ser un poco lenta" en la búsqueda por el hecho de que tiene que recorrer absolutamente todos los elementos de izquierda a derecha en busca de ese valor. . Un elemento de una linked list (singly) solo conoce al siguiente elemento, pero no conoce al siguiente, es por eso que no te puedes regresar, por eso, si necesitas conocer el valor de un nodo anterior no te queda otra opción más que terminar tu búsqueda y volver a iniciarla. Por eso una linked list no sería la mejor opción para hacer búsqueda de elementos que dependen de otro elemento de la misma linked list:D
Jorge Cruz Perez
Creo que es asi: Un elemento de una linked list (singly) solo conoce al siguiente elemento, pero no conoce al anterior, cierto? Saludos :)
Carlos Eduardo Gomez García
Así es, pequeño typo, ojalá Platzi me dejara corregirlo xd
Me gusto mucho el articulo, les traigo una frase:
Pensemos en las Singly Linked List como un edificio con escaleras donde cada piso sería un Nodo. Si quisiera ir del piso 1 al piso 5, estoy obligado a pasar por los pisos 2, 3 y 4. Además siempre debo entrar por el primer piso.
Juan Esteban Galvis
Recuerdo que vi las listas en la universidad con Java, como vimos son nodos (Cajas digamos con valores dentro) y un enlace o referencia al siguiente. Existen varios tipos, por ejemplo:
Simple (Contenido y Siguiente):
Doblemente ligada (Anterior, Contenido y Siguiente)
Circular (Además de doblemente ligada, también conecta el principio y fin de la lista):
Alexis Villalva
Gracias por el aporte :D
Tomás Eduardo González Quiñones
Recuerdo tener este ramo en la universidad, la diferencia era que me quería morir, me las enseñaron por 3 meses y no entendí nada en su momento... ahora llevo 2 días y estoy entendiendo todo, gracias diego, gracias platzi
Juan Sebastián Agudelo
Linked List (Listas enlazadas)
Son un conjutno de nodos, donde en cada nodo esta el valor que guardamos y tambien una referencia en memoria de donde esta el nodo siguiente. . Te dejo este articulo para que profundizes mas sobre las linked list en JS Mas sobre las linked list en JS . Hay dos tipos de linked list, las que solo apuntan a su nodo siguiente, (singly linked list) y las que tienen dos referencias en memoria (Doubly Linked List), los cuales corresponden al nodo anterior y al nodo siguiente. .
Pero pensemos en las Singly Linked List como un edificio con escaleras donde cada piso sería un Nodo. Si quisiera ir del piso 1 al piso 5, estoy obligado a pasar por los pisos 2, 3 y 4. Además siempre debo entrar por el primer piso. . Para recorrer una linked list tenemos que pasar por todos y cada uno de los nodos, y siempre desde la cabeza, entonces ya podemos ver que es un poco ineficiente para algunos casos ya que no podemos acceder al valor de un nodo de manera rapida solo como su indice o su key como si seria el caso en los arrays y las tablas de hash. . Sino que por el contrario debemos de recorrer cada uno de los nodos si o si hasta llegar al que nos interesa.
Usuario anónimo
User🤔 Un Linked List consume un poco más de memoria que un Array.
Diego Fernando Velesaca Orellana
En que casos prácticos (de la vida real) se debería o podria utilizar linkde lists ?
Rubén Cuello
Pregunta: Parece que javascript tiene ya todo resuelto con array y objetos. Cual sería la funcionalidad extra que me haría considerar usar una "singly linked list" o algún otro tipo de estructuras?
Rony Porraz Vargas
Las Linked list o en español listas enlazadas son otra estructura de datos y un pequeño ejemplo visual seria algo asi
las listas enlazadas tienen nodos donde guardan la información donde tenemos una cabeza que serial el primer nodo y el ultimo que seria la cola.
Las listas enlazadas tienen métodos para acceder o manipular la información
Si quieres saber más de las listas te dejo este video que me pareció muy descriptivo que encontré https://www.youtube.com/watch?v=0NzAFk1CwaQ
Ana Rotela Cabrera
Tipos de Linked List
Ejemplos prácticos en la vida real
Stelin Larios
Las singly linked list para entenderse mejor pueden verse como una escalera entre pisos. Cada piso representa un nodo Si quiero ir al ultimo piso debo pasar antes por todos los pisos previos
Mas información
Tomas Di Mauro
Resumen Linked lists: (img 1)Conjunto de nodos ordenados que poseen una refencia al nodo siguiente Singly Linked List: (img 2) Tipo de linked list hacen referencia al valor actual y al nodo siguiente, si se quiere llegar a un nodo en específico, se deben recorrer todos los nodos anteriores
Juan Camilo Lentino Villalba
según Wikipedia:
el principal beneficio de las listas enlazadas respecto a los vectores convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento.
Woldev S.A.S
Un hash table, básicamente, es esto:
Woldev S.A.S
Ingresamos una llave a una caja negra o candado (hasher function), si es la llave indicada, pasará el filtro y accederá al "value" que puede ser un cofre con lo que buscábamos o una puerta para continuar nuestro camino. Ahora, en vez de una sola cerradura, sería una hilera de cerraduras (siendo cada cerradura un bucket y la hilera la totalidad de nuestro hash map o hash table).
Julian Parra
La clave para los linked list es No perder la cabeza
Ruben Vigil
Es una estructura lineal que almacena una colección de elementos generalmente llamados nodos, donde cada nodo puede almacenar datos y enlaces a otros nodos. De esta manera los nodos pueden localizarse en cualquier parte de la memoria, utilizando la referencia que lo relaciona con otro nodo dentro de la estructura.
Se requiere un espacio de memoria adicional para un puntero por cada elemento de la lista. Al primer nodo se le llama "++head++" o cabeza, El ultimo nodo se llama "++tail++" o cola. El tamaño de la lista enlazada no necesita ser especificada en el momento de su inicialización. Permite una reestructuración en el tiempo de ejecución, a diferencia de los arreglos. No se necesita que los elementos sean almacenadas de manera contigua en la memoria ya que los punteros se utilizan para enlazar los datos entre sí.
Métodos: • Prepend: Agregar un nodo al inicio • Append: Agregar un nodo al final • Lookup/search: Buscar un nodo • Insert: Insertar un nodo en la lista • Delete: Borrar un nodo
Caracteristicas: • Acceso: El acceso aleatorio no esta permitido. Los elementos deben de ser accesados secuencialmente y empezando desde el primer nodo.
• Insercion: Podria ser implementado eficientemente si el elemento se inserta en la cabeza (primer nodo) porque no habria un reenlace de nodos a ejecutarse, ya que el primer nodo no tiene ningun nodo predecesor. Insertar un nodo en el medio de la lista requiere que el nodo predecesor se enlace al nuevo nodo agregado. Insertar un nodo al final (en la cola) requiere que el nodo predecesor apunte al nuevo nodo que está al final de la lista.
• Eliminación: Podría implementarse de manera eficiente si el elemento se elimina desde la cabeza (primer nodo) porque no habría que reenlazar los nodos. Eliminar un nodo del medio o del final, requiere que se vuelvan a enlazar los nodos para actualizar las referencias de los nodos contiguos.
Busqueda: Las listas enlazadas se deben revisar secuencialmente, hasta que un match aparezca.
Edgar David Jiménez Jijón
No hay una clase de listas pero de java?
Omar Daniel Centeno
Hola
Puedes ver esta documentación sobre las LinkedList en Java.
Saludos
Jesus Anguiano Solano
Listas enlazadas
MétodosAcciónprependAgregar un nodo al inicioappendAgregar un nodo al finalLookup / searchBuscar un NodoinsertInsertar un nodo a la listadeleteBorrar un Nodo
Cristian Camilo Cortes Ortiz
LINKED LIST
Las listas enlazadas (linked lists) enJavaScript son estructuras de datoslineales que consisten en una secuenciade nodos, donde cada nodo contiene un elemento de datos y una referencia (o enlace) al siguiente nodoen la secuencia. A diferencia de los arrays, las listas enlazadas noalmacenan sus elementos en ubicaciones contiguas de memoria, lo que permite una inserción y eliminaciónde elementos más eficienteen términosde tiempo. Existen varios tipos de listasenlazadas, como las listas simplemente enlazadas, doblementeenlazadas y circularmente enlazadas, cada una con sus propias ventajas y casos de usoespecíficos. EnJavaScript*, las listasenlazadas se implementan utilizandoobjetos y referencias, proporcionandouna formaflexible y dinámica de gestionarcolecciones de datos.*
Las listas simplemente enlazadas (single linked lists) en JavaScript son una variante de las listas enlazadas, donde cada nodo contiene un solo enlace que apunta al siguiente nodo en la secuencia. La estructura básica de un nodo en una lista simplemente enlazada incluye un elemento de datos y una referencia al siguiente nodo. Esta configuración permite una inserción y eliminación eficiente de elementos, especialmente en la cabeza de la lista, pero puede resultar en accesos más lentos a elementos ubicados más lejos en la secuencia debido a la necesidad de recorrer los nodos uno por uno. En JavaScript*, las listas simplemente enlazadas se implementan utilizando objetos y punteros, proporcionando una solución flexible para manejar colecciones de datos donde la modificación frecuente es necesaria.*
🦁 Linked List
Ideas/conceptos claves
Linked List son simplemente un conjunto de nodos ordenados que contienen los valores que necesitemos (numbers, strings, boolean, etc). Cada uno tiene un valor y una referencia a un siguiente nodo.
Apuntes
Métodos
Singly Linked List
RESUMEN: Un singly linked list es aquella que en sus nodos están su valor actual y la relación con el siguiente, si deseamos acceder a un determinado valor debemos recorrer si o si todos los elementos anteriores para llegar al lugar deseado.