Rot-Schwart-Baum denkfehler im code?

d3rbastl3r

Bekanntes Mitglied
Hallo,
ich sitze jetzt schon ne weile an nem RotSchwarz-Baum und kriege immer wieder haufen exceptions o.0
Diese entstehen daher weil in dem Baum falsche funktionen angesprochen werden.

Hier erstmal der gesamte Code:
package com.d3rbastl3r.RBBaum (das RBBaum): Paste #235020 | LodgeIt!
package com.d3rbastl3r.RBBaum (das Interface): Paste #235021 | LodgeIt!
und die Testdateien:
Testklasse : Paste #235022 | LodgeIt!
Main: Paste #235023 | LodgeIt!

In der Main wird dieser Baum mit den Zahlen 10, 5 und 6 gespeist. (in genau der reihenfolge)
Die 10 ist hierbei das Root-Element
Die 5 müsste sich an den Linken zweig der 10 und die 6 an den rechten zweig der 5 heften.
Soweit funktioniert es einbahnfrei.

Nach einfügen der 6 müsste insertCase1(), zeile 246, das insertCase2() zum ersten mal starten usw.
das ganze läuft bis insertCase4().
In insertCase4(), zeile 287, tauchen die ersten fehler auf (zumindest soweit ich feststellen konnte).

Zeile 290 und 291 habe ich 2 testabfragen die nach der eingabe folgendes ergebnis erzielen sollten:
290: if(this == this.parent.right) //müsste auf jeden fall true ergeben
291: if(this.parent == getGrandparent().left) //müsste ebenfalls true ergeben

demnach sollte Zeile 292 auch true ergeben und die darunter stehenden anweisungen ausgeführt werden.
aus irgend einem grund ergibt zeile 290: if(this == this.parent.right) false deshalb wird die falsche rotation des baumes gestartet und das programm smeisst einen "NullPointerException" in zeile 367. (an dieser stelle wird die Späzielle rotation für das RootElement durchgeführt)


Eine weitere fehlermeldung ist mir ebenfalls rätselhaft: (Exception in thread "main" java.lang.NullPointerException)
Diese springt (scheinbar) willkürlich an verschiedensten stellen auf, ohne dass programm verändert wird ist diese manchmal hier und manchmal dort o.0
Eventuell könnte das ganze mit dem NIL element zusammenhängen *kopfkratz*


Also, falls einer von den pro´s hier den fehler im programmcode findet wär ich sehr dankbar xD





Ach ja, hier auch mal das gesamte NetBeans projeckt.
 

Anhänge

  • TestRBBaum.zip
    24,6 KB · Aufrufe: 2
Zuletzt bearbeitet:

Michael...

Top Contributor
kriege immer wieder haufen exceptions
...
Eine weitere fehlermeldung ist mir ebenfalls rätselhaft: (Exception in thread "main" java.lang.NullPointerException)
Wie lauten die und in welcher Codezeile treten diese auf?
In diesen Fehlermeldungen wird ja ziemlich genau beschrieben welcher Fehler wo auftritt. Wenn man sich damit ein bisschen auseinandersetzt, kommt man meist sehr schnell alleine drauf.
 

Landei

Top Contributor
Du musst irgendwo eine Verlinkung vergessen oder verloren haben, denn an besagter Stelle ist this weder linkes noch rechtes Kind vom parent.
 

d3rbastl3r

Bekanntes Mitglied
Irgendwie komme ich einfach nciht weiter mit diesem Programm.

Also wenn ich alle verbindungen zwischen den Elementen in der Main ausgebe dann passt alles, wenn ich jedoch die verbindungen im "insertCase1()" ausgebe so zeigt jeder Parent jeweils left und right immer auf NIL o.0 ich verstehe es einfach nicht.


Hier mal das aktuelle NetBeans Projekt
 

Anhänge

  • TestRBBaum.zip
    27,7 KB · Aufrufe: 2
Zuletzt bearbeitet:

d3rbastl3r

Bekanntes Mitglied
Problem entlich behoben!

Das Problem war dass ich das insertCase1() im konstruktor des neuen elements aufgerufen habe. Diesen habe ich jetzt in die insert() methode verlagert: Paste #235785 | LodgeIt!

Trotzdem ist es mir rätselhaft wieso das im konstruktor nicht ging, vielleicht weis das jemand und würde mir das verraten :)
Solange lass ich diesen thread noch offen.
 

Landei

Top Contributor
Initialisierungsreihenfolge? Man muss vorsichtig sein, was man im Konstruktor aufruft, da eventuall noch nicht alles initialisiert ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Karl_Der_Nette_Anfänger Hat wer ne Lösung für verknüpfte Postleitzahlen? (Baum/Wurzel Struktur) Allgemeine Java-Themen 11
D 2,3-Baum rekursiv erstellen Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
L Dependency Injection für Baum-Einträge Allgemeine Java-Themen 9
M Iterator für trinären Baum Allgemeine Java-Themen 0
N Rekursiv Höhe Baum Allgemeine Java-Themen 3
D Baum zeichnen hilfe Allgemeine Java-Themen 4
D if - else Baum vereinfachen Allgemeine Java-Themen 4
A AVL-Baum - Testen ob einer vorliegt Allgemeine Java-Themen 4
M Eclipse Stackoverflow beim Einlesen von großen Bilder in kd Baum Allgemeine Java-Themen 15
G Datentypen TreeMap nach Color sortiert (kd-Baum) Allgemeine Java-Themen 8
M Baum nach Stack plus Objektkonvertierung Allgemeine Java-Themen 5
S Baum mit vordefinierten Werten befüllen Allgemeine Java-Themen 2
D Datenstruktur für Hierarchie/Baum mit Tiefe 3 Allgemeine Java-Themen 8
M Baum Allgemeine Java-Themen 3
K Dependency Baum erstellen/analysieren Allgemeine Java-Themen 2
J Baum mit Adjazensmatrix Allgemeine Java-Themen 8
MQue Tidy HTML baum durchlaufen Allgemeine Java-Themen 5
C Breitendurchlauf Baum. Vorgehen unklar. Allgemeine Java-Themen 23
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
R Daten aus Baum entsprechend in jTree einfuegen Allgemeine Java-Themen 2
C Daten möglichst schnell einem Baum zuordnen Allgemeine Java-Themen 2
S Datenstruktur für einen Baum Allgemeine Java-Themen 5
N Baum aus Datei laden. Allgemeine Java-Themen 3
M Präkrement Denkfehler Allgemeine Java-Themen 18
J Denkfehler Rekursion Allgemeine Java-Themen 5
M Logikproblem bzw. Denkfehler Allgemeine Java-Themen 5
Thallius App-Sprache in der App ändern. Wo ist mein Denkfehler? Allgemeine Java-Themen 6
M Normalized Iteration count funktioniert nicht. Wo ist mien Denkfehler? Allgemeine Java-Themen 6
O NullPointerException (wohl Denkfehler) Allgemeine Java-Themen 5
Tandibur Denkfehler bei Pattern.matches? Allgemeine Java-Themen 3
C Bilder rotieren, Denkfehler in der Berechnung? Allgemeine Java-Themen 2
V Hm Denkfehler? oder was stimmt da nicht? Allgemeine Java-Themen 2
I Denkfehler bei Interfaces und Casts? Allgemeine Java-Themen 12
B Zugriff auf Methoden unter JNI (Denkfehler?) Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben