Está en la página 1de 5

Introducción

Una lista doblemente enlazada es una lista lineal en la que cada nodo tiene dos enlaces, uno
al nodo siguiente, y otro al anterior.
Las listas doblemente enlazadas no necesitan un nodo especial para acceder a ellas, pueden
recorrerse en ambos sentidos a partir de cualquier nodo, esto es porque a partir de cualquier
nodo, siempre es posible alcanzar cualquier nodo de la lista, hasta que se llega a uno de los
extremos.

Características:

 Recorrido secuencial en ambas direcciones


 Mayor ocupación: 2 referencias en cada nodo
 Inserción y borrado: Modificar más referencias
 Borrado más simple: Localizado el elemento a borrar se accede al anterior / siguiente

Ventajas:

 Las implementaciones para la lista doble son las misma que para la lista simple con la diferencia
de que la clase nodo de la clase lista doble tendrá un nodo adicional que viene a ser el nodo
anterior. Otra diferencia es en la implementación del método insertar nodo porque hay que
tomar en cuenta que ya no se maneja un solo enlace sino dos.
 Otra ventaja de las listas doblemente enlazadas es que podemos usar un puntero a la celda
que contiene el i-ésimo elemento de una lista para representar la posición i, mejor que usar el
puntero a la celda anterior, aunque lógicamente, también es posible la implementación similar
a la expuesta en las listas simples haciendo uso de la cabecera. El único precio que pagamos
por estas características es la presencia de un puntero adicional en cada celda y
consecuentemente procedimientos algo más largos para algunas de las operaciones básicas
de listas
1

El presente código muestra la creación de una lista enlazada doble, y la eliminación


de un nodo que supere un valor dado, se creó un método para la eliminación de un
nodo, este se ingresa por medio de teclado, y hace el recorrido de nodo anterior al
siguiente y al nodo siguiente. También se creó un método para mostrar la lista de los
nodos. Y el método agregar al final para que los nodos se agreguen al final de la lista.

Código
public class Lista {
private Nodo inicio;
private Nodo fin;

public Lista(){
inicio=fin=null;
}
public void agregarFin(int info){
Nodo nuevo=new Nodo(info, null);
if (inicio==null) {
inicio=fin=nuevo;
}
else{
fin.setSiguiente(nuevo);
fin=nuevo;
}
}
public void mostrar(){
Nodo aux=inicio;
while (aux!=null){
System.out.println(aux.getDato());
aux=aux.getSiguiente();
2

}
}
public void eliminar(int valor){
Nodo anterior=inicio;
Nodo aux=inicio.getSiguiente();
Nodo temp;
while(aux!=null){
if (aux.getDato()>valor) {
temp=aux.getSiguiente();
anterior.setSiguiente(aux.getSiguiente());
aux=aux.getSiguiente();
}
}

}
}
3
4

Conclusión
Las listas enlazadas dobles, son estructuras de datos que podría parecer son muy
fáciles de comprender, pero para las personas que no tienen una noción definida de
programación como es mi caso, se dificulta el poder comprenderlas, aunque su nivel
de complejidad no sea alto. Las listas enlazadas dobles facilitan la comprensión de
los elementos en determinados problemas.