Untitled

 avatar
unknown
plain_text
3 years ago
2.9 kB
3
Indexable
public class TListaGenerica<T> {
    private TNodo<T> Cabeza;
    
    public <T>TListaGenerica(){
        Cabeza=null;
    }
    
    public void setCabeza(TNodo<T> Cab){
        Cabeza=Cab;
    }
    
    public TNodo<T> getCabeza(){
        return Cabeza;
    }
    
    public TNodo<T> Ultimo(){
        TNodo Tem;
        Tem=Cabeza;
        while(Tem !=null){
            if(Tem.getSiguiente()==null){
                break;
            }else{
                Tem=Tem.getSiguiente();
            }
        }
        return Tem;
    }
    
    public void Agregar(TNodo<T> Nod){
        if(Cabeza==null){
            Cabeza=Nod;
           
        }else{
            Ultimo().setSiguiente(Nod);
        }
        //Nod.setSiguiente(null);
    }
    
    public void Insertar(TNodo<T> Nod){
        if(Cabeza == null){
            Nod.setSiguiente(null);
            Cabeza=Nod;
            
        }else{
            Nod.setSiguiente(Cabeza);
            Cabeza=Nod;
        }
    }
    
    public TNodo<T> Anterior(TNodo<T> Nod){
        TNodo<T> Ant;
        TNodo Tem;
        Ant=null;
        Tem=Cabeza;
        while(Tem!=null){
            if(Tem.getSiguiente()==Nod){
                break;
            }else{
                Tem=Tem.getSiguiente();
            }
        }
        return Ant;
    }
    
    public void Eliminar(TNodo<T> Nod){
        TNodo Ant;
        if(Cabeza== Nod){
            Cabeza = Cabeza.getSiguiente();
        }else{
            Ant=Anterior(Nod);
            Ant.setSiguiente(Nod.getSiguiente());
        }
    }
    
    public TNodo<T> NodoPos(int Pos){
        int p;
        TNodo<T> Nod;
        p=0;
        Nod=Cabeza;
        while(Nod!=null){
            if(p==Pos){
                break;
            }else{
                p++;
                Nod=Nod.getSiguiente();
            }
        }
        return Nod;
    }
    
    public void LimpiarLista(){
        while(Cabeza != null){
            Eliminar(Cabeza);
        }
    }
    
    public int ContarNodos(){
        int cant;
        TNodo tem;
        cant=0;
        tem=Cabeza;
        while(tem!=null){
            cant=cant+1;
            tem=tem.getSiguiente();
        }
        return cant;
    }
    
}

=============================================================

public class TNodo<T> {
    
    private T Datos;
    private TNodo<T> Siguiente;
    
    public <T>TNodo(){
        Datos=null;
        Siguiente=null;
    }
    
    public void setDatos(T Dat){
        Datos= Dat;
    }
    
    public void setSiguiente(TNodo<T> Sig){
        Siguiente=Sig;
    }
    
    public T getDatos(){
        return Datos;
    }
    
    public TNodo<T> getSiguiente(){
        return Siguiente;
    }
    
    
}
     
Editor is loading...