LISTAS DOBLEMENTE LIGADAS Y LISTAS CIRCULARES
**************///////
Listas circulares dobles
La lista circular doble es una especie de lista enlazada “doblemente enlazada”, pero que posee una característica adicional para el desplazamientodentro de la lista, “ésta no tiene fin” y tiene 2 apuntadores a sí misma.
Para que la lista sea sin fin, el puntero siguiente del último elemento apuntará hacia el 1er elemento y el punteroanterior del primer elemento apuntara hacia el último elemento de la lista en lugar de apuntar al valor NULL, como hemos visto en el caso de listas enlazadas simples o doblemente enlazadas.
En las listascirculares dobles, nunca se llega a una posición en la que ya no sea posible desplazarse.
Cuando se llegue al último elemento, el desplazamiento volverá a comenzar desde el primer elemento.
Lasoperaciones básicas de una lista circular doble son:
· Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta inserción al principio o final de la lista o bien en orden.· Eliminar: elimina un nodo de la lista, puede ser según la posición o por el dato.
· Buscar: busca un elemento en la lista.
· Localizar: obtiene la posición del nodo en la lista.
· Imprimir: imprime loselementos de la lista.
Nodo principal
public class Nodo {
private Integer dato;
private Nodo anterior;
private Nodo siguiente;
}
Método Insertar al iniciopublic void insertarInicio(Integer d){
Nodo nuevo=new Nodo(d);
if(inicio==null)
inicio=nuevo;
else{
Nodo aux=inicio; while(aux.getSiguiente()!=inicio)
aux=aux.getSiguiente();
aux.setSiguiente(nuevo);
nuevo.setAnterior(aux);
nuevo.setSiguiente(inicio);
inicio.setAnterior(nuevo);
inicio=nuevo;
}
}
Método insertar al final
public void insertarFinal(Integer d){...
Regístrate para leer el documento completo.