Está en la página 1de 4

LISTAS CIRCULARES

ELIMINAR PRIMERO

public Nodo EliminaPrimero(){


Nodo temp=cabeza;
if(EstaVacia()){
return (cabeza);
}
else{
if (cabeza.getDato()==cola.getDato()){
temp = cabeza;
cabeza = null;
cola = null;
}
else{
cabeza=cabeza.getProximo();
cabeza.setAnterior(cola);
cola.setProximo(cabeza);
temp.setAnterior(null);
temp.setProximo(null);
}
return (temp);
}
}

RECORRIDO
public void recorridoIda(){
System.out.println("CONTENIDO DE LA LISTA: \n");
if(EstaVacia()){
System.out.println ("[La lista est vaca]");
System.out.println();
}
else{
Nodo temp = cabeza;
while (temp!= cola){
temp.muestraNodo( );
temp = temp.getProximo();
System.out.print("->");
}
temp.muestraNodo( );
System.out.println();
}
}

public void recorridoVuelta(){


System.out.println("CONTENIDO DE LA LISTA: \n");
if(EstaVacia()){
System.out.println ("[La lista est vaca]");
System.out.println();
}
else{
Nodo temp = cola;
while (temp!=cabeza){
temp.muestraNodo( );
temp = temp.getAnterior();
System.out.print("->");
}
temp.muestraNodo( );
System.out.println();
}
}

ELIMINAR ULTIMO

public Nodo EliminaFinal(){


Nodo temp=cola;
if(EstaVacia()){
return (cola);
}
else{
if (cabeza.getDato()==cola.getDato()){
temp = cola;
cabeza=null;
cola=null;
}
else{
cola=temp.getAnterior();
cola.setProximo(cabeza);
cabeza.setAnterior(cola);
temp.setProximo(null);
temp.setAnterior(null);
}
}
return temp;
}

INSERTA EN UNA POSICION X

public void InsertarPos(Nodo nuevo){


Nodo temp;
Nodo temp2=null;

int c=1;
temp = cabeza;
int pos;
if(EstaVacia()){
System.out.println ("No hay posiciones disponibles se
ingresara en en primerlugar");
InsertarPrimero(nuevo);
}
else{
while (temp!=cola){
temp = temp.getProximo();
c++;
}
System.out.println ("Hay "+(c+1)+" posiciones
disponibles para ingresar un valor");
System.out.print ("Ingrese la posicin en la que desea
ingresar el valor: ");
pos = Leer.datoInt();
if (pos == 1){
InsertarPrimero(nuevo);
}
else if (pos == c+1){
InsertaFinal(nuevo);
}
else if (pos<1||pos>(c+1)){
System.out.println ("No existe dicha posicin en la
lista");
System.out.println ("El elemento no se insert");
temp = null;
}
else {
temp = cabeza;
int i=1;
while (i<pos){
temp2=temp;
temp= temp.getProximo();
i++;
}
nuevo.setProximo(temp2.getProximo());
nuevo.setAnterior(temp.getAnterior());
temp2.setProximo(nuevo);
temp.setAnterior(nuevo.getAnterior());
}
}
}