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