JavaScript es un lenguaje de programación web que se utiliza para que nuestras páginas web y aplicaciones web sean dinámicas e interactivas al darles la capacidad de pensar y actuar. Como cualquier otro lenguaje de programación, JavaScript nos ofrece matrices que son una colección de diferentes elementos almacenados en una sola variable. La limitación de una matriz es que se almacena consecutivamente en una memoria particular en nuestro sistema, por lo tanto, para resolver este problema, utilizamos una lista vinculada.
Lista enlazada
Las listas vinculadas son como matrices, excepto que en una lista vinculada, los elementos no se guardan en una ubicación o índice de memoria específico y cada elemento es un objeto independiente separado que está conectado al siguiente elemento al tener un puntero o enlace a ese elemento.
Cada lista vinculada contiene un cabezal (primer nodo), longitud (tamaño de la lista vinculada) y una propiedad de cola (último nodo), y cada elemento en una lista vinculada se llama nodo y cada nodo tiene un valor almacenado en ella y el enlace al siguiente nodo. Si el nodo actual es la cola, el enlace será nulo que no apunta a ningún otro nodo. La lista vinculada no contiene índices a diferencia de matrices que tienen índices e.g 0,1,2 ... y así sucesivamente.
Las listas vinculadas en JavaScript se pueden demostrar de la siguiente manera:
// Lista enlazadaLa ventaja de la lista vinculada es que los elementos (nodos) se agregan y eliminan fácilmente de la lista vinculada sin ajustar toda la lista vinculada. La desventaja de una lista vinculada es que necesita más memoria para el almacenamiento, ya que ahora tenemos un puntero adicional que estamos almacenando junto con el valor del elemento.
Las listas vinculadas son de tres tipos que se describen a continuación:
Implementación de la lista vinculada
Primero creemos un nodo que tenga dos propiedades un valor y un puntero para el cual crearemos una clase con el nombre de Listnode que tiene estas dos propiedades:
class ListNodeAhora que sabemos cómo crear un nodo, creemos una lista vinculada donde el valor predeterminado del cabezal será nulo:
clase LinkedListAhora inicializemos la lista vinculada con dos nodos y agregemos un puntero desde el cabezal o el nodo 1 al segundo nodo:
var nodo1 = new ListNode (3);El siguiente paso es inicializar la lista vinculada con Node1 de la siguiente manera:
var list = new LinkedList (node1);Todo el código se proporciona a continuación con registro de consola el valor nodo2:
// Creación de nodoMétodos de la lista vinculada
Ahora que hemos terminado con la implementación de la lista vinculada, jugemos o manipulemos la lista vinculada mediante la implementación de más métodos para utilizar las listas vinculadas (métodos auxiliares):
El primer método ayudante que definiremos es el tamaño() Método en la clase Lista enlazada que devolverá la longitud de la lista vinculada:
size = () =>Primero en este código, estamos declarando una variable ficticia contar almacenar 0 en él y luego almacenar el puntero de la cabeza en el nodo variable. Luego declaramos un bucle que iterará sobre la lista vinculada e incrementará el contar variable.
El próximo método auxiliar será el getFirst () Método donde se devolverá el puntero de la cabeza:
getFirst = () =>También podemos obtener el último nodo de la lista vinculada de la siguiente manera:
getLast = () =>El código completo ahora se proporciona a continuación al mostrar la salida del segundo valor del nodo, el tamaño de la lista vinculada, el primer valor del nodo y el último valor del nodo en el mismo orden:
// Creación de nodoConclusión
Después de las matrices, una lista vinculada es la segunda estructura de datos más utilizada en cualquier lenguaje de programación. Una lista vinculada es como una matriz que almacena una colección de diferentes elementos con la diferencia es que cada elemento (nodo) de una lista vinculada es un objeto que contiene un valor del elemento y un puntero que apunta al siguiente nodo, vinculando cada elemento y La segunda diferencia es que los elementos no se guardan en una ubicación de memoria específica en una lista vinculada.
En esta publicación, vimos qué listas vinculadas son, las ventajas y desventajas de las listas vinculadas, los tipos de listas vinculadas y cómo implementar la estructura de datos de listas vinculadas en JavaScript.