/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
 */
package listaligada;

/**
 *
 * @author mario
 * 
 */



public class ListaLigada {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        ListaLigada Prog = new ListaLigada();
        Prog.ejecuta();
     
    }
    
    void ejecuta(){
        Lista L=new Lista();
        
        Nodo alumno=new Nodo();
        alumno.setNc(100);
        alumno.setNombre("Mario");
        
        L.insertaNodo(alumno);
        
        alumno=new Nodo();
        alumno.setNc(200);
        alumno.setNombre("Elsy");
        
        L.insertaNodo(alumno);
        
        alumno=new Nodo();
        alumno.setNc(500);
        alumno.setNombre("Leonor");
        
        L.insertaNodo(alumno);
        
        L.recorreLista();
        
        alumno=new Nodo();
        alumno.setNc(400);
        alumno.setNombre("Sandra");
        
        L.insertaNodo(alumno);
        
        L.recorreLista();
    }
    
    class Nodo{
    private int nc;
    private String nombre;
    private Nodo sig;

    public int getNc() {
        return nc;
    }

    public void setNc(int nc) {
        this.nc = nc;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Nodo getSig() {
        return sig;
    }

    public void setSig(Nodo sig) {
        this.sig = sig;
    }
    
    

    public Nodo() {
        this.nc=0;
        this.nombre="";
        this.sig=null;
    }
    
    
}

class Lista{
    private Nodo cabeza;

    public Lista() {
        this.cabeza = null;
    }

    public Nodo getCabeza() {
        return cabeza;
    }

    public void setCabeza(Nodo cabeza) {
        this.cabeza = cabeza;
    }
    
    public void insertaNodo(Nodo n){
        if (this.cabeza==null)
            this.cabeza=n;
        else {
            Nodo p=this.cabeza;
            while (p.getSig()!=null)
                p=p.getSig();
            p.setSig(n);
            n.setSig(null);         
        }
            
    }
    
    public void recorreLista(){
        Nodo p=this.cabeza;
        while (p!=null){
            System.out.println(p.getNc());
            System.out.println(p.getNombre());
            System.out.println("===============");
            p=p.getSig();       
    } // recorreLista
    
} // Class Lista
    
}

}
    