Suchbaum problem.

Status
Nicht offen für weitere Antworten.

Bierhumpen

Bekanntes Mitglied
Einen wunderschönen guten Morgen,

also ich habe ein Problem. Ich will habe ein Array und will es in einen binären Suchbaum einfügen. Also Element für Element. Nun übergibt er beispielsweise die 6 zwei oder dreimal. Was ist an meinen Methoden falsch...

Code:
class SearchBinTreeTest{

    
    public static void main (String [] args){
    
        int [] testarray = {11,8,6,48,25,46,2,6,84};   
        SearchBinTree sbt1 = new SearchBinTree(7);
        sbt1.einfuegenRek(8);
        sbt1.einfuegenRek(6);
        sbt1.inFix();
        System.out.println("");
        sbt1.einfuegenAusArray(testarray);
        sbt1.inFix();
    }

Code:
class SearchBinTree{
    
    private SearchBinTree left = null;
    private SearchBinTree right = null;
    private int value; 
    
    SearchBinTree(int v){
        left = null;
        right = null;
        value = v;
    }
    
    void einfuegenRek(int elem){
        if(elem>=value){
            if(right==null){
                right = new SearchBinTree(elem);
            }
            else{
                right.einfuegenRek(elem);
            }
        }
        else{
            if(left==null){
                left = new SearchBinTree(elem);
            }
            else{
                left.einfuegenRek(elem);
            }
        }  
    }
    
    void einfuegenAusArray(int[] elemArray){
        for (int i=0; i<elemArray.length; i++){
            int uebergabewert = elemArray[i];
            einfuegenRek(uebergabewert);
        }
    }
    
    boolean findeRek(int n){
        boolean istVorhanden=false;

        if (n==value){
            istVorhanden=true;
        }
        else if ((n>value)&&(right!=null)){
            right.findeRek(n);  
        }
        else if ((n<value)&&(left!=null)){
            left.findeRek(n);
        }
        else{
            istVorhanden=false;
        }
        
        return istVorhanden;   
    }
    
   public void inFix(){
        System.out.print("(");
        
        if (left !=null){   // Drucke linken Teilbaum
            left.inFix();
        }	
        System.out.print(value);    // Drucke eigenen Wert
        
        if (right !=null){  // Drucke rechten Teilbaum
            right.inFix();
        }	
        System.out.print(")");
   }

}
 

byte

Top Contributor
Die 6 steht doch auch zweimal in deinem Array drin und einmal fügst Du sie zuvor einzelnt ein. Warum sollte das falsch sein?
 

Bierhumpen

Bekanntes Mitglied
Uhhh.. ich habs.. ich füge sie dadrüber ja auch ein.... als einzelne elemente... alles klar ;) bis denne
 

Bierhumpen

Bekanntes Mitglied
///// EDITIERT ///// und nochmal ///// EDITIERT /////

ein problem habe ich noch
bei der findeRek()

da gibt er komischerweise immer false aus, obwohl die zahl vorhanden ist.....
 

byte

Top Contributor
Bin mir nicht genau sicher. Mach doch mal die Returns direkt in die If-Abfrage. Ich habe das Gefühl, dass die Methode zuviel macht:

Code:
boolean findeRek(int n){

        if (n==value){
            return true;
        }
        else if ((n>value)&&(right!=null)){
            right.findeRek(n); 
        }
        else if ((n<value)&&(left!=null)){
            left.findeRek(n);
        }
        else{
            return false;
        }
       
        return false;   
    }


Edit: War Blödsinn, das sollte nix ändern. In meinen Augen sieht Deine Methode richtig aus. Sicher, dass das Problem in dieser Methode liegt?
 

Bierhumpen

Bekanntes Mitglied
hmmm geh ich stark von aus... denn wenn ich 7 eingebe liefert er true zurück..... (weils warscheinlich der erste wert ist)

ich denke das problem liegt an der weitergabe.....
 

byte

Top Contributor
Dann kann ich mir nur noch vorstellen, dass der Fehler in der Rekursion liegt. Versuch mal:

Code:
boolean findeRek(int n){

        if (n==value){
            return true;
        }
        else if ((n>value)&&(right!=null)){
            return right.findeRek(n);
        }
        else if ((n<value)&&(left!=null)){
            return left.findeRek(n);
        }
        else{
            return false;
        }  
}
 

Bierhumpen

Bekanntes Mitglied
Code:
    boolean findeRek(int n){
        boolean istVorhanden=false;

        if (n==value){
            istVorhanden=true;
        }
        else if ((n>value)&&(right!=null)){
            istVorhanden = right.findeRek(n);  
        }
        else if ((n<value)&&(left!=null)){
            istVorhanden = left.findeRek(n);
        }        
        return istVorhanden;   
    }


thats it! zumindest funktioniert es so... oder kann da noch ein fehler auftreten den ich nciht bedacht habe?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Cassy3 Binärer Suchbaum Knoten rauslöschen Java Basics - Anfänger-Themen 1
G Java Binärer Suchbaum Java Basics - Anfänger-Themen 1
G Binärer Suchbaum Knoten zählen Java Basics - Anfänger-Themen 1
O Suchbaum Elternknoten finden Level eines Knoten bestimmen Java Basics - Anfänger-Themen 24
L Binärer Suchbaum Java Basics - Anfänger-Themen 2
N ID3 - Suchbaum ertellen! Java Basics - Anfänger-Themen 0
M Suchbaum implementieren Java Basics - Anfänger-Themen 8
C Methoden Methode zu einem Binären Suchbaum Java Basics - Anfänger-Themen 8
J Suchbaum Java Basics - Anfänger-Themen 3
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
U Binärer Suchbaum delete Java Basics - Anfänger-Themen 1
S Binärer Suchbaum - Size als Variabel in innerer Klasse speichern Java Basics - Anfänger-Themen 2
N Binären Suchbaum erstellen, nachzuvollziehen Java Basics - Anfänger-Themen 0
W binären Suchbaum Kantenanzahl Java Basics - Anfänger-Themen 3
G Rekursion Suchbaum Java Basics - Anfänger-Themen 2
W Löschen Datenknoten Suchbaum Java Basics - Anfänger-Themen 4
H Suchbaum iterativ absteigen? Java Basics - Anfänger-Themen 3
E binärer suchbaum Java Basics - Anfänger-Themen 8
K Binärer Suchbaum Java Basics - Anfänger-Themen 3
D Binärer Suchbaum Java Basics - Anfänger-Themen 11
Q Binärer suchbaum Java Basics - Anfänger-Themen 2
N Tiefe im binären Suchbaum Java Basics - Anfänger-Themen 9
I Rekursives Löschen in Binärem Suchbaum Java Basics - Anfänger-Themen 2
Y Binärer Suchbaum Java Basics - Anfänger-Themen 5
A Suchbaum Java Basics - Anfänger-Themen 4
DasDogma Suche im Suchbaum Java Basics - Anfänger-Themen 2
D suchbaum out of heap space Java Basics - Anfänger-Themen 8
M Binärer Suchbaum Höhe Java Basics - Anfänger-Themen 6
G Hoffe jemand kann mir ein paar Tips geben:binärer Suchbaum Java Basics - Anfänger-Themen 3
G Binäre Suchbaum + Erstellung des Programmes Java Basics - Anfänger-Themen 4
E Binärer Suchbaum Java Basics - Anfänger-Themen 7
R binärer Suchbaum Java Basics - Anfänger-Themen 1
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben