Lista Ligada sencilla en JavaScript
Para tener una comprensión clara de la lista ligada sencilla, me voy a poner en práctica LinkedList clase en JavaScript.
Cada nodo de la lista enlazada tendrá dos atributos: value & next, y la lista enlazada tendrá los atributos head, tail y length.
Push
¿Cómo podemos empujar un nuevo nodo al final de nuestra lista? Hagamos una función push. Primero, necesitamos crear un nuevo nodo usando el valor dado, verificar si la lista tiene un encabezado (¿está vacía?) y no olvides aumentar el tamaño de la lista.
Pop
Con empujones, necesitamos pensar acerca de estallar, la eliminación del último elemento. Si no hay nodo, devuelve indefinido, de lo contrario, recorre la lista hasta que lleguemos a la cola, establece la siguiente propiedad del penúltimo nodo como null, haz que el penúltimo sea la cola, no olvides disminuir el tamaño de la lista.
Cambio
Para eliminar el primer elemento, desplazamiento, como de costumbre, compruebe si la lista está vacía. Primero, almacene la cabeza actual en una variable, configure la cabeza para que sea la siguiente de la cabeza actual, disminuya la longitud.
Unshift
Para insertar un nodo al principio de la lista, verifique si la lista está vacía, si no, configuramos el encabezado actual para que sea el siguiente atributo del nodo entrante, incrementa el tamaño.
Get
aunque la lista enlazada no tiene índices, que todavía son capaces de encontrar el nodo de índice dado. Primero asegúrese de que el índice dado sea mayor que cero y menor o igual a la longitud de la lista. Luego recorremos la lista hasta llegar al índice.
Set
¿Qué pasa si queremos cambiar un nodo en nuestra lista? Encontramos el nodo con get (), y establecemos el nodo con los datos dados.
Insertar
Cuando queremos insertar un nuevo nodo en la lista, compruebe primero si el índice es mayor que 0 y menor que la longitud. Si index es la longitud, solo usamos push (), si el índice es 0, usamos unshift (). Para otros índices, necesitamos obtener el nodo en el índice-1, y establecer la siguiente propiedad de ese nodo para que sea el nuevo nodo, y la siguiente propiedad del nuevo nodo para que sea la siguiente propiedad anterior, luego incrementamos la longitud.
Eliminar
a Diferencia de pop y unshift, quitar la función de eliminar el nodo de índice dado. Como de costumbre, compruebe si el índice es válido, si el índice es igual a length-1 o 0, use pop o shift. De lo contrario, obtenemos el nodo en el índice-1, establecemos la siguiente propiedad en ese nodo para que sea la siguiente de la siguiente propiedad, después, disminuimos el tamaño.
Invertir
El último inversa pregunta! ¿Cómo invertimos la lista? Primero, intercambiamos cabeza y cola, declaramos siguiente y anterior, establecemos el anterior como nulo. Recorremos la lista.