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