Nodo.java
public class Nodo { int info;
Nodo liga;
public Nodo(int x){ info=x;
liga=null;
}
}
ListaCircularOrdenada.java
public class ListaCircularOrdenada { Nodo inicio, fin;
public ListaCircularOrdenada(){ inicio=null;
fin=null;
}
public void inserta(int dato){ Nodo temp=new Nodo(dato);
if(fin==null){ inicio=temp;
fin=temp;
fin.liga=inicio;
}
else if(dato<=inicio.info){ temp.liga=inicio;
inicio=temp;
fin.liga=inicio;
}
else if(dato>=fin.info){ fin.liga=temp;
fin=temp;
fin.liga=inicio;
}
else{ Nodo anterior, posterior;
anterior=inicio;
posterior=inicio.liga;
while(posterior.info<dato){ anterior=posterior;
posterior=posterior.liga;
}
anterior.liga=temp;
temp.liga=posterior;
}
System.out.print("Dato insertado"); }
public void mostrar(){ Nodo aux1=inicio;
Nodo aux2=inicio.liga;
System.out.print("-> "+aux1.info); while(aux2!=inicio){ aux1=aux2;
System.out.print("-> "+aux1.info); aux2=aux2.liga;
}
System.out.println();
}
public void elimina(int dato){ Nodo eliminado;
if(inicio==null){System.out.println("La lista esta vacia");} else if(inicio.info==dato){ eliminado=inicio;
inicio=inicio.liga;
eliminado.liga=null;
fin.liga=inicio;
System.out.println("Dato eliminado"); }
else{ Nodo ante, post;
ante=inicio;
post=inicio.liga;
while(post!=inicio)
if(post.info!=dato){ ante=post;
post=post.liga;
}
else{ if (post==fin)
fin=ante;
fin.liga=inicio;
eliminado=post;
post=post.liga;
ante.liga=post;
eliminado.liga=null;
fin.liga=inicio;
break;
}
try{ System.out.println("Dato eliminado"); }catch(NullPointerException e){System.out.println("Dato no encontrado");} }
}
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios