Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El doble enlace de los nodos permite recorrer la lista en cualquier dirección. Mientras que agregar o eliminar un nodo en
una lista doblemente enlazada requiere cambiar más enlaces que en estas mismas operaciones en una lista enlazada
simple, las operaciones son más simples porque no hay necesidad de mantener guardado el nodo anterior durante el
recorrido, ni necesidad de recorrer la lista para hallar el nodo anterior, la referencia al nodo que se quiere eliminar o
insertar es lo único necesario.
Índice
Nomenclatura e implementación
Algoritmos Básicos
lista doblemente enlazada
Recorriendo la lista
Insertando un nodo
Borrando un Nodo
lista Doblemente Enlazada Circular
Recorriendo la lista
Insertar un Nodo
Véase también
Nomenclatura e implementación
El primer y el último nodo de una lista doblemente enlazada son accesibles inmediatamente (o sea, accesibles sin
necesidad de recorrer la lista, y usualmente llamados cabeza y cola) y esto permite recorrerla desde el inicio o el final de
la lista, respectivamente. Cualquier nodo de la lista doblemente enlazada, una vez obtenido, puede ser usado para empezar
un nuevo recorrido de la lista, en cualquier dirección (hacia el principio o el final), desde el nodo dado.
Los enlaces de un nodo de una lista doblemente enlazada son frecuentemente llamados anterior y siguiente o
antecesor y sucesor. Las referencias guardadas en los enlaces son usualmente implementadas como punteros,pero
también podrían ser índices de un array donde están los nodos.
Algoritmos Básicos
https://es.wikipedia.org/wiki/Lista_doblemente_enlazada 1/5
27/8/2019 Lista doblemente enlazada - Wikipedia, la enciclopedia libre
record NodoDoblementeEnlazado {
siguiente // Una referencia al nodo siguiente
anterior // Una referencia al nodo anterior
dato // dato o referencia al dato
}
record ListaDoblementeEnlazada {
NodoDoblementeEnlazado primerNodo // referencia al primer nodo de la lista
NodoDoblementeEnlazado ultimoNodo // referencia al último nodo de la lista
}
Recorriendo la lista
Recorrer una lista doblemente enlazada puede ser en cualquier dirección. De hecho, la dirección del recorrido puede
cambiar muchas veces, si se desea. Recorrido es frecuentemente llamado iteración.
Hacia adelante
nodo := lista.primerNodo
while nodo ≠ null
<Hacer algo con nodo.dato>
nodo := nodo.siguiente
Hacia atrás
nodo := lista.ultimoNodo
while nodo ≠ null
<Hacer algo con nodo.dato>
nodo := nodo.anterior
Insertando un nodo
Estas funciones insertan un nodo ya sea adelante o atrás de un nodo dado:
También necesitamos una función para insertar un nodo al principio de una lista posiblemente vacía:
https://es.wikipedia.org/wiki/Lista_doblemente_enlazada 2/5
27/8/2019 Lista doblemente enlazada - Wikipedia, la enciclopedia libre
Borrando un Nodo
Eliminar un nodo es más fácil que insertar, pero requiere un manejo especial si el nodo a eliminar es el primerNodo o el
ultimoNodo:
Una sutil consecuencia del procedimiento de arriba es que eliminando el último nodo de una lista asigna a primerNodo y a
ultimoNodo a null, y de esta forma maneja correctamente eliminar el último nodo de una lista de un solo elemento.
Tampoco necesitamos separar los métodos "EliminarAtras" o "EliminarAdelante", porque en una lista doblemente
enlazada podemos usar "Elimina(nodo.anterior)" o "Elimina(nodo.siguiente)" cuando sea válido. También se asume que
está garantizado que el nodo siendo eliminado existe. Si el nodo no existe en la lista, entonces algún manejo de error será
requerido.
Recorriendo la lista
Asumir que algunNodo es algún nodo en una lista no vacía, este código recorre la lista empezando por' 'algunNodo:
Hacia delante
nodo := algunNodo
do
<Hacer algo con nodo.dato>
nodo := nodo.siguiente
while nodo ≠ algunNodo
Hacia atrás
https://es.wikipedia.org/wiki/Lista_doblemente_enlazada 3/5
27/8/2019 Lista doblemente enlazada - Wikipedia, la enciclopedia libre
nodo := algunNodo
do
<Hacer algo con nodo.dato>
nodo := nodo.anterior
while nodo ≠ algunNodo
Notar que la condición se ejecuta al final del ciclo. Esto es importante para el caso en que la lista contiene el único nodo
algunNodo.
Insertar un Nodo
Esta simple función inserta un nodo en una lista doblemente enlazada circular delante de un elemento dado:
Insertar un elemento en una lista posiblemente vacía requiere una función especial:
Finalmente para eliminar un nodo debemos lidiar con el caso donde la lista es vacía:
Véase también
Lista (informática)
Obtenido de «https://es.wikipedia.org/w/index.php?title=Lista_doblemente_enlazada&oldid=117034131»
Esta página se editó por última vez el 29 jun 2019 a las 11:23.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; pueden aplicarse cláusulas
adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
https://es.wikipedia.org/wiki/Lista_doblemente_enlazada 4/5
27/8/2019 Lista doblemente enlazada - Wikipedia, la enciclopedia libre
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.
https://es.wikipedia.org/wiki/Lista_doblemente_enlazada 5/5