Lab 07 List As Circular Es
Lab 07 List As Circular Es
Observemos que el puntero sig del último nodo apunta al primer nodo. En este tipo de
listas si avanzamos raiz no perdemos la referencia al nodo anterior ya que es un círculo.
El puntero ant del primer nodo apunta al último nodo de la lista y el puntero sig del
último nodo de la lista apunta al primero.
Implementación
public class Nodo <Tipo>{
private Tipo info;
private Nodo anterior;
private Nodo siguiente;
public Nodo(Tipo x){
info=x;
anterior =null;
siguiente=null;
}
public ListaCircular () {
raiz=null;
}
if (raiz==null) {
nuevo.setSiguiente(nuevo);
nuevo.setAnterior(nuevo);
raiz=nuevo;
} else {
Nodo ultimo=raiz.getAnterior();
nuevo.setSiguiente(raiz);
nuevo.setAnterior(ultimo);
raiz.setAnterior(nuevo);
ultimo.setSiguiente(nuevo);// anterior
raiz=nuevo;
}
if (raiz==null) {
nuevo.setSiguiente(nuevo);
nuevo.setAnterior(nuevo);
raiz=nuevo;
} else {
Nodo ultimo=raiz.getAnterior();
nuevo.setSiguiente(raiz);
nuevo.setAnterior(ultimo);
raiz.setAnterior(nuevo);
ultimo.setSiguiente(nuevo);//anterior
}
}
}
public class Demo {
public static void main(String[] args) {
ListaCircular <Integer> lista=new ListaCircular();
lista.insertarPrimero(8);
lista.insertarPrimero(9);
System.out.println("La lista ");
lista.imprimir();
lista.insertarUltimo(10);
lista.insertarUltimo(12);
System.out.println("La lista ");
lista.imprimir();
lista.insertarPrimero(16);
System.out.println("La lista ");
lista.imprimir();
lista.insertarUltimo(12);
System.out.println("La lista ");
lista.imprimir();
}
}