Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
Una lista doblemente enlazada es una estructura de datos que consta de un conjunto de nodos secuenciales enlazados entre sí de manera que cada nodo contiene una referencia al nodo anterior así como al siguiente nodo. Este tipo de lista enlazada es ventajoso sobre una lista enlazada simple porque permite el recorrido en ambas direcciones.
Un nodo de lista doblemente enlazado típico contiene tres campos:
El primer nodo en una lista doblemente enlazada normalmente se denomina nodo principal y el último nodo normalmente se denomina nodo cola. El nodo principal y el nodo final tienen propiedades especiales en las que el campo anterior del nodo principal es nulo y el siguiente campo del nodo final es nulo.
Aquí hay una ilustración de una lista doblemente enlazada con cuatro nodos:
Y aquí está el código para un nodo de lista doblemente enlazado básico en JavaScript:
function Node(data) {
this.prev = null;
this.next = null;
this.data = data;
}
Para insertar un nuevo nodo en una lista doblemente enlazada, primero debemos encontrar el nodo en el que queremos insertar el nuevo nodo después. Una vez que hayamos encontrado ese nodo, podemos configurar el siguiente campo del nuevo nodo para que apunte al nodo que encontramos, y podemos configurar el campo anterior del nodo encontrado para que apunte al nuevo nodo. Finalmente, podemos configurar el campo anterior del nuevo nodo para que apunte al nodo encontrado.
Aquí hay una ilustración de cómo se ve este proceso de inserción:
Y aquí está el código para este proceso de inserción:
function insertAfter(node, newNode) {
newNode.next = node.next;
node.next = newNode;
newNode.prev = node;
}
Para eliminar un nodo de una lista doblemente enlazada, primero debemos encontrar el nodo que queremos eliminar. Una vez que hemos encontrado el nodo, podemos configurar el campo anterior del siguiente campo del nodo para que apunte al campo anterior del nodo, y podemos configurar el siguiente campo del campo anterior del nodo para que apunte al siguiente campo del nodo. Finalmente, podemos establecer el campo anterior y el campo siguiente del nodo en nulo.
Aquí hay una ilustración de cómo se ve este proceso de eliminación:
Y aquí está el código para este proceso de eliminación:
function deleteNode(node) {
node.prev.next = node.next;
node.next.prev = node.prev;
node.prev = null;
node.next = null;
}
¡Eso es todo al respecto! Una lista doblemente enlazada es una estructura de datos simple pero poderosa que se puede usar en una variedad de aplicaciones.