Lista doble enlazada en java
Una lista circular simplemente encadenada la podemos representar gráficamente:
Observemos que el puntero sig del último nodo apunta al primernodo. En este tipo de listas si avanzamos raiz no perdemos la referencia al nodo anterior ya que es un círculo.
Una lista circular puede también ser doblemente encadenada:
El puntero ant delprimer nodo apunta al último nodo de la lista y el puntero sig del último nodo de la lista apunta al primero.
Resolveremos algunos métodos para administrar listas genéricas circulares doblementeencadenadas para analizar la mecánica de enlace de nodos.
Programa:
public class ListaCircular {
class Nodo {
int info;
Nodo ant,sig;
}
private Nodo raiz;public ListaCircular () {
raiz=null;
}
public void insertarPrimero(int x) {
Nodo nuevo=new Nodo();
nuevo.info=x;
if (raiz==null) {nuevo.sig=nuevo;
nuevo.ant=nuevo;
raiz=nuevo;
} else {
Nodo ultimo=raiz.ant;
nuevo.sig=raiz;nuevo.ant=ultimo;
raiz.ant=nuevo;
ultimo.sig=nuevo;
raiz=nuevo;
}
}
public void insertarUltimo(int x) {
Nodo nuevo=new Nodo();nuevo.info=x;
if (raiz==null) {
nuevo.sig=nuevo;
nuevo.ant=nuevo;
raiz=nuevo;
} else {
Nodo ultimo=raiz.ant;nuevo.sig=raiz;
nuevo.ant=ultimo;
raiz.ant=nuevo;
ultimo.sig=nuevo;
}
}
public boolean vacia ()
{
if (raiz ==null)
return true;
else
return false;
}
public void imprimir ()
{
if (!vacia()) {
Nodo reco=raiz;
do {...
Regístrate para leer el documento completo.