pregunta. ingresar un nombre y 2 notas y sacar su promedio...
listas enlazadas.
lo hice asi pero me sale errore en listas
mirenlo en que hice mal porfa ayudenme
------------
Exception in thread "main" java.lang.NullPointerException
        at cesar.Lista.insertarfinal(Lista.java:33)
        at cesar.Lista.crearlista(Lista.java:100)
        at cesar.Principal.main(Principal.java:9)
Java Result: 1
 
---------------- nodo para notas----------
public class Nodo
{
 int Dato;
 Nodo enlace;
 public Nodo()
 {
     Dato=0;
     enlace=null;
 }
 public void setDato(int valor)
 {
     Dato=valor;
 }
 public void setEnlace(Nodo numero)
 {
     enlace=numero;
 }
 public int getDato()
 {
     return Dato;
 }
 public Nodo getEnlace()
 {
     return enlace;
 }
}
----- nodo para nombre--
 
public class Nodo2
{
    String cadena;
    Nodo2 enlace;
    public Nodo2()
    {
        cadena="";
        enlace=null;
    }
    public void setcadena(String cad)
    {
        cadena=cad;
    }
    public void setenlace(Nodo2 n)
    {
        enlace=n;
    }
    public String getcadena()
    {
        return cadena;
    }
    public Nodo2 getenlace()
    {
        return enlace;
    }
}
-----------lista enlazada----
import java.io.*;
public class Lista
{
    Nodo cab,ultimo,nuevo;
    Nodo2 cab2,ultimo2,nuevo2;
    public Lista()
    {
        cab=null;
        ultimo=null;
        nuevo=null;
        cab2=ultimo2=nuevo2=null;
    }
    public void crearnodo(int n)
    {
        nuevo=new Nodo();
        nuevo.setDato(n);
        nuevo.setEnlace(null);
    }
    public void crearnodo2(String cad)
    {
        nuevo2=new Nodo2();
        nuevo2.setcadena(cad);
        nuevo2.setenlace(null);
    }
    public void insertarfinal(int n)
    {
        crearnodo(n);
        if(cab==null)
            cab=nuevo;
        else
        {
            ultimo.setEnlace(nuevo);
            ultimo=nuevo;
        }
    }
    public void insertarfinalS(String m)
    {
        crearnodo2(m);
        if(cab2==null) cab2=nuevo2;
        else
        {
            ultimo2.setenlace(nuevo2);
            ultimo2=nuevo2;
        }
    }
    public boolean vacioint()
    {
        return cab==null;
    }
    public boolean vacioString()
    {
        return cab2==null;
    }
    public void ImprimirLista()
    {
        int x;
        double prom;
        Nodo aux=new Nodo();
        Nodo2 aux2=new Nodo2();
        aux=cab;
        aux2=cab2;
        while(aux2!=null)
        {
            x=1;
            prom=0;
            System.out.println(aux2.getcadena()+" Sus notas son");
            while(x!=3)
            {
            prom+=aux.getDato();
            System.out.println("Nota "+x+" : "+aux.getDato());
            x++;
            aux=aux.getEnlace();
            }
            System.out.println("Promedio es : "+prom/2);
            aux2=aux2.getenlace();
        }
        System.out.println("IMPRESO TODOS LOS DATOS");
    }
    public void crearlista()throws IOException
    {
        DataInputStream leer=new DataInputStream(System.in);
        String nombre;
        int notas,x;
        char option;
       do
       {
           x=1;
           do
           {
              System.out.print("Ingrese el nombre del alumno :");
             nombre=leer.readLine();
             if(nombre.length()==0) System.out.println("VACIO...");
           }while(nombre.length()==0);
           insertarfinalS(nombre);
           while(x!=3)
           {
              System.out.println("NOTA "+x+" : ");
              notas=Integer.parseInt(leer.readLine());
              insertarfinal(notas);
              x++;
           }
 
            System.out.println("Desea continuar S/N :");
            nombre=leer.readLine();
            option=nombre.charAt(0);
       }while(option=='s' || option=='S');
    }
}
--------- MAIN--------
import java.io.*;
public class Principal
{
    public static void main(String[] args) throws IOException
    {
        Lista oLista= new Lista();
        System.out.println("INGRESAR DATOS");
        oLista.crearlista();
        System.out.println("IMPRIMIENDO DATOS");
        oLista.ImprimirLista();
    }
}
------------------------ 
  
 

