Nodo.java
public class Nodo {
int info;
Nodo liga;
public Nodo(int x){
info=x;
liga=null;
}
}
ListaOrdenada.java
public class ListaOrden {
Nodo inicio, fin;
public ListaOrden(){
inicio=null;
fin=null;
}
public void inserta(int dato){
Nodo temp=new Nodo(dato);
if(fin==null){
inicio=temp;
fin=temp;
}
else if(dato<=inicio.info){
temp.liga=inicio;
inicio=temp;
}
else if(dato>=fin.info){
fin.liga=temp;
fin=temp;
}
else{
Nodo anterior, posterior;
anterior=inicio;
posterior=inicio.liga;
while(posterior.info<dato){
anterior=posterior;
posterior=posterior.liga;
}
anterior.liga=temp;
temp.liga=posterior;
}
}
public void mostrar(){
Nodo aux=inicio;
while(aux!=null){
System.out.print(aux.info+" ");
aux=aux.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;
}
else{
Nodo ante, post;
ante=inicio;
post=inicio.liga;
while(post!=null)
if(post.info!=dato){
ante=post;
post=post.liga;
}
else{
if (post==fin)
fin=ante;
eliminado=post;
post=post.liga;
ante.liga=post;
eliminado.liga=null;
break;
}
try{
if (post==null && fin!=ante)
System.out.println("Dato no encontrado");
}catch(NullPointerException e){System.out.println("Dato no encontrado");}
}
}
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios