null pointer exeption und keine ahnung woher...



  • tach

    ich bekomme immer eine null pointer exeption und weiss nich wirklich warum...ich kanns mir höchstens denken...da N zeitweise immer um eins größer sein dürfte als das array...aber selbst im konstruktor zu schreiben groesse +1 bringt keinen unterschied...hoffe mir kann jmd helfen thx schon mal 🙂

    bye

    tt

    class PBaumImplementation
    {
    
     public PBaumImplementation(int groesse)
     {
      pbaum = new Comparable[groesse];
     } 
    
     public void einfuegen(Comparable element)
     {
      pbaum[++N] = element;
      steigen(N);
    
     }
    
     public boolean entfernen(Comparable element)
     {
      return true;
     }
    
     public boolean suchen(Comparable elemennt)
     {
      return true;
     }
    
     protected void sinken(int index)
     {
      int j;
      Comparable v;
    
      v=pbaum[index];
      while(index<=N/2)
      {
       j=2*index;
       if(j<N && (pbaum[j].compareTo(pbaum[j+1]) < 0)) j++;
       if( (v.compareTo(pbaum[j]) > 0) || (v.compareTo(pbaum[j]) == 0) )
        break;
       pbaum[index]=pbaum[j];
       index = j;
      }
      pbaum[index]=v;
     }
    
     protected void steigen(int index)
     {
      Comparable v;
      v=pbaum[index];
      while( (pbaum[index/2].compareTo(v)< 0) || (pbaum[index/2].compareTo(v)==0) )
      {
       pbaum[index]=pbaum[index/2];
       index = index/2;
      }
      pbaum[index]=v;
     }
    
     public Comparable gibWurzel()
     {
      return pbaum[0];
     }
    
     public static Comparable[] convert(int[] data) 
     {
      Comparable[] result = new Comparable[data.length];
      for (int i = 0; i < data.length; i++) 
      {
       result[i] = new Integer(data[i]);
      }
      return result;
     }
    
     public void ausgabe(int n)
     {
     for(int i = 0; i<n; i++)
        System.out.print(pbaum[i]+" ");
     }
    
    static int N = 0;
    protected Comparable pbaum[];
    }
    
    class PBaumImpl
    {
     public static void main(String args[])
     {
      int testfeld[]={3,14,8,9,2,4,10,16,7,1};
    
      PBaumImplementation Heap = new PBaumImplementation(10);
    
      Comparable bla[] = Heap.convert(testfeld);
    
      for(int k = 0; k < 10;k++) Heap.einfuegen(bla[k]);
      Heap.ausgabe(10);
     }
    }
    


  • das Prob leigt glaub ich hier:

    pbaum[++N]

    N wird schon beim ersten Element auf 1 gesetzt, so dass das 0. feld-Element leer bleibt

    [ Dieser Beitrag wurde am 18.05.2003 um 14:03 Uhr von crass editiert. ]



  • jupp, das is mir auch aufgefallen hatte ich demzufolge auch schon probiert...aber ein

    pbaum[N] = ...;
    N++;

    bringt es auch nicht..da kommen nur noch mehr Fehler 😉

    bye

    tt


Anmelden zum Antworten