Les dejo el ejemplo de listas dobles enlazadas
Archivo NodosEnlazados.java
public class NodosEnlazados{
public String dato; // guardamos un dato de tipo cadena
public NodosEnlazados siguiente;
public NodosEnlazados anterior;
public NodosEnlazados(String palabra){
dato=palabra;
siguiente=null;
anterior=null;
}
}
Archivos ListaDobleEnlazada.java
import java.util.*;
public class ListaDobleEnlazada{
public NodosEnlazados DatosCompletos;
public ListaDobleEnlazada(){
DatosCompletos=null;
}
public void RecibeLista(List palabras){
List ListaDatos = new ArrayList();
ListaDatos = palabras;
int contador = 0;
//llamo la funcion agregarelementos y le paso la palabar a agregar a la listadoble
// for que recorrera la lista de palabras para agregarlas
for (Object Datos : ListaDatos){
String auxDatos = Datos.toString();
AgregaElementos(auxDatos);
}
}
private void AgregaElementos(String palabra){
LocalizarUltimo();
NodosEnlazados temp = new NodosEnlazados(palabra);
if (DatosCompletos==null)
DatosCompletos=temp;
else{
temp.siguiente=DatosCompletos;
DatosCompletos.anterior=temp;
}
}
public void imprimir(){
LocalizarPrimero();
while (DatosCompletos != null){
System.out.println("valor de lista datos "+ DatosCompletos.dato);
DatosCompletos=DatosCompletos.anterior;
}
}
public NodosEnlazados RegresamosLista(){
return DatosCompletos;
}
private void LocalizarUltimo(){
if (DatosCompletos!=null){
while (DatosCompletos.anterior!=null)
DatosCompletos=DatosCompletos.anterior;
}
}
private void LocalizarPrimero(){
if (DatosCompletos!=null){
while (DatosCompletos.siguiente!=null)
DatosCompletos=DatosCompletos.siguiente;
}
}
public static void main(String[] args){
NodosEnlazados ResultadoLista;
List prueba = new ArrayList();
prueba.add("Marisol");
prueba.add("Yazmin");
prueba.add("Juan");
prueba.add("Alma");
ListaDobleEnlazada Cargamos = new ListaDobleEnlazada();
Cargamos.RecibeLista(prueba);
Cargamos.imprimir();
//ResultadoLista = Cargamos.RegresamosLista();
ResultadoLista = Cargamos.DatosCompletos;
if (ResultadoLista == null)
System.out.println("tenermos un error de referencia...");
while (ResultadoLista != null){
System.out.println("Existo con los datos "+ResultadoLista.dato);
ResultadoLista=ResultadoLista.siguiente;
}
}
}
Capturen y compilen, de igual forma complementen lo que falta de los procesos, suerte