Rekursiver Methodenaufruf funktioniert nicht

target2804

Mitglied
Hallo liebes Forum,

hab mich bzgl. meines Problems extra hier angemeldet, also verzeiht mir, wenn ich evt. nicht direkt das richtige Unterforum getroffen habe, oder meine Frage sich in irgendeiner weise als unsinnig rausstellen sollte.

Mein Problem ist folgendes: Ich erstellte eine Klasse Tree, die die typischen Methoden Insert, remove, getLeft, getRight, etc. hat.
Nun sollte ich die Methode getDepth (in unserer Aufgabe sollte die Methode "tiefe" heißen und da der Prof immer Punkte abzieht, wenn etwas nicht so ist wie er will, heißt die Methode halt so) implementieren. Hab auch schon einen Lösungsansatz, aber der rekursive Methodenaufruf klappt einfach nicht.
Ich verstehe nicht, was hier falsch sein soll. Kann mir bitte jemand weiterhelfen? Im Anhang der Auszug. Wir lernen übrigens mit BlueJ...

Hier im Bild sieht man wo der Compiler den Fehler sieht:
Bildschirmfoto 2015-11-30 um 00.09.34.png


Hier nochmal der Code an sich:
Java:
//get-Methoden
    public String getContent(){
        return content;
    }

    public Tree getLeft() {
        return left;
    }

    public Tree getRight(){
        return right;
    }

    public int getAnzahl(){
        int anz = 1;
        if(getLeft()!=null)anz = anz + getLeft().getAnzahl();
        if(getRight()!=null)anz = anz + getRight().getAnzahl();
        return anz;
    }

    public int tiefe(){
        int tiefeL = 0;
        int tiefeR = 0;
        if(getLeft() != null) tiefeL = getLeft().tiefe();
        if(getRight() != null)tiefeR = getRight().tiefe();
        if(tiefeL>tiefeR) return tiefeL;
        else return tiefeR;
    
    }
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Poste doch mal den ganzen Tree code oder noch besser alles, damit wir das auch mal laufen lassen können.
 

target2804

Mitglied
Java:
public class Tree2{
    private String content;
    private Tree left;
    private Tree right;
    private String text;
   
    //Konstruktoren
    public Tree2(String content, Tree left, Tree right){
        this.content = content;
        this.left = left;
        this.right = right;
    }
   
    public Tree2(String content){
        this(content,null,null);
    }
   
   
   
    //get-Methoden
    public String getContent(){
        return content;
    }
   
    public Tree getLeft() {
        return left;
    }
   
    public Tree getRight(){
        return right;
    }
   
    public int getAnzahl(){
        int anz = 1;
        if(getLeft()!=null)anz = anz + getLeft().getAnzahl();
        if(getRight()!=null)anz = anz + getRight().getAnzahl();
        return anz;
    }
   
    public int tiefe(){
        int tiefeL = 0;
        int tiefeR = 0;
        int depth;
        if(getLeft() != null) tiefeL = tiefeL + getLeft().tiefe();
        if(getRight() != null)tiefeR = getRight().tiefe();
        if(tiefeL>tiefeR) depth = tiefeL; 
        else depth = tiefeR;
        return depth;
    }
   
   
   
    //set-Methoden
    public void setContent(String x){
        content = x;
    }
   
    public void setLeft(Tree tree){
        left = tree;
    }
   
    public void setRight(Tree tree){
        right = tree;
    }
   
    public void fuegeEinSortiert(String newContent){
        if(newContent.compareTo(content)<0){
           
            if(getLeft() == null){
                Tree newTree = new Tree(newContent);
                setLeft(newTree);
            }
            else getLeft().fuegeEinSortiert(newContent);
        }
           
        else{
               
            if(getRight() == null){
                Tree newTree = new Tree(newContent);
                setRight(newTree);
            }
            else getRight().fuegeEinSortiert(newContent);
        }
    }
   
    //Ausgabe LWR
    public String ausgabeLWR(){
        String s="";
        if(getLeft()!=null) {
            s += getLeft().ausgabeLWR();
        }
        s += " "+getContent();
        if(getRight()!=null){
            s += getRight().ausgabeLWR();
        }
        return s;
    }
   
    private void showBranches(int level) {
        LineIO io = new LineIO();
        if (getRight()!=null) getRight().showBranches(level+1);
        for(int i=0; i<level;i++) io.write("      "); io.writeln("+-> "+getContent());
        if (getLeft()!=null) getLeft().showBranches(level+1);
    }//showBranches 

    public void ausgabe() { 
        this.showBranches(0);
    }
}

Das ist mein ganzer Code...
 

CSHW89

Bekanntes Mitglied
Dein Baum hat den Typ Tree2, deine left und right Unterbäume aber den Typ Tree. Da stimmt also irgendwas nicht. Anscheinend gibt es die Klasse oder das Interface Tree, sonst würde es früher ein Fehler geben. Wie sieht denn Tree aus?

lg Kevin
 

stg

Top Contributor
Spontan fällt auf, dass du einmal Tree2 benutzt und einmal Tree. Außerdem hast du den Fehler, den Thallius angemerkt hat, noch nicht ausgebessert.
 

target2804

Mitglied
hab den Fehler gefunden...
so muss es aussehen, dann passt es.
Fehler war, dass ich ... getLeft().tiefe(); geschrieben hatte. das funktioniert aber nicht. es muss left.tiefe() heißen und in der Bedingung der if Anweisung muss auch if(left.... statt getLeft() stehen..

Bildschirmfoto 2015-11-30 um 13.40.23.png

das mit Tree2 war nur, weil ich die Klasse Tree schonmal hatte und meinen Code, den ich bearbeite, gern in einer anderen Klasse zur Absicherung absichere.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J rekursiver Methodenaufruf Java Basics - Anfänger-Themen 12
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
J Rekursiver Algorithmus Java Basics - Anfänger-Themen 9
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
S Rekursiver InsertionSort ohne Schleife Java Basics - Anfänger-Themen 7
K Methoden Fibonacci in Array mit rekursiver Methoden Java Basics - Anfänger-Themen 19
4 Stack over flow bei rekursiver Tiefensuche Java Basics - Anfänger-Themen 5
O Rekursiver Durchlauf verschachtelter Elemente Java Basics - Anfänger-Themen 1
B Quadratwurzel nach Heron in rekursiver Darstellung Java Basics - Anfänger-Themen 1
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
W sysout in rekursiver methode Java Basics - Anfänger-Themen 4
A Rekursiver Pseudocode Java Basics - Anfänger-Themen 4
E Problem bei rekursiver Berechnung des Binomialkoeffizienten Java Basics - Anfänger-Themen 5
S Probleme bei Ausgabe von rekursiver Methode (List) Java Basics - Anfänger-Themen 16
J Rekursiver Horner-Schema-Algorithmus - Verstehe ich ihn richtig? Java Basics - Anfänger-Themen 2
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
O Faktorielle mit rekursiver Methode berechnen Java Basics - Anfänger-Themen 6
S Laufzeit bei rekursiver Methode messen Java Basics - Anfänger-Themen 6
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
S Werte von rekursiver Methode Java Basics - Anfänger-Themen 5
Q rekursiver algo. Java Basics - Anfänger-Themen 16
M Potenz mithilfe rekursiver Funktion Java Basics - Anfänger-Themen 13
F Rekursiver Algorithmus Java Basics - Anfänger-Themen 5
C Frage zu negativen und positiven Exponenten in rekursiver Methode Java Basics - Anfänger-Themen 11
G Rekursiver Aufruf einer JSP über eine JavaScript-Funktion Java Basics - Anfänger-Themen 5
G PRoblem mit rekursiver float additions methode Java Basics - Anfänger-Themen 9
B rekursiver Funktionsaufruf Java Basics - Anfänger-Themen 2
E fehlermeldung bei rekursiver grafik Java Basics - Anfänger-Themen 11
F Problem bei rekursiver Binärsuche Java Basics - Anfänger-Themen 2
T Rekursiver Algorithmus: Türme von Hanoi Java Basics - Anfänger-Themen 8
C Methodenaufruf mit geänderten Argumenten Java Basics - Anfänger-Themen 10
S Methoden Methodenaufruf rekursiv zählen Java Basics - Anfänger-Themen 4
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
O Methodenaufruf Java Basics - Anfänger-Themen 5
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
Queiser Methodenaufruf Java Basics - Anfänger-Themen 2
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
I Java Methodenaufruf Java Basics - Anfänger-Themen 9
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
BadBat Klassen instanz als variable + methodenaufruf Java Basics - Anfänger-Themen 4
M Methodenaufruf in Methode Java Basics - Anfänger-Themen 6
M Objekt Name für MethodenAufruf nachträglich zuweisen? Java Basics - Anfänger-Themen 2
J if() mit Methodenaufruf kombiniert (Pixelerkennung) Java Basics - Anfänger-Themen 3
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
M Methoden Methodenaufruf allgemein Java Basics - Anfänger-Themen 3
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
O Methodenaufruf Java Basics - Anfänger-Themen 6
F Methodenaufruf Java Basics - Anfänger-Themen 1
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
J Array mit Methodenaufruf Java Basics - Anfänger-Themen 2
S Problem bei Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 3
OnDemand Methodenaufruf Java Basics - Anfänger-Themen 3
A Methoden Benutzerdefinierter Methodenaufruf Java Basics - Anfänger-Themen 4
O Methodenaufruf - Inhaltsveränderung Java Basics - Anfänger-Themen 23
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
L Einfacher Methodenaufruf vs. Objekt Java Basics - Anfänger-Themen 4
O Methodenaufruf im Konstruktor Java Basics - Anfänger-Themen 6
G was ist ein Methodenaufruf mit (){}? Java Basics - Anfänger-Themen 6
S Methoden Klassen Definition - Methodenaufruf Java Basics - Anfänger-Themen 7
K Methoden Methodenaufruf für BufferedWriter .. Java Basics - Anfänger-Themen 5
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
A Problem bei Methodenaufruf Java Basics - Anfänger-Themen 6
B Parameterausführung bei Methodenaufruf Java Basics - Anfänger-Themen 8
A Methodenaufruf Java Basics - Anfänger-Themen 4
P Vererbung Methodenaufruf funktioniert aber Wertzuweisung von Variablen nicht Java Basics - Anfänger-Themen 9
S methodenaufruf Java Basics - Anfänger-Themen 8
G Erste Schritte Methodenaufruf, Variablen-Deklaration Java Basics - Anfänger-Themen 6
L Methodenaufruf in main() Java Basics - Anfänger-Themen 3
M Methodenaufruf in for-Schleife - nur 1 mal ausgegeben Java Basics - Anfänger-Themen 3
I Externer Methodenaufruf, Punkt-Notation Java Basics - Anfänger-Themen 11
I Methoden Rückverfolgung Methodenaufruf Java Basics - Anfänger-Themen 15
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
M Methoden Methodenaufruf mit .class. Java Basics - Anfänger-Themen 2
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
T Java mehrfacher Methodenaufruf Java Basics - Anfänger-Themen 15
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
B Quicksort --> Methodenaufruf Java Basics - Anfänger-Themen 10
O Methodenaufruf Java Basics - Anfänger-Themen 4
A nullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 16
J Vererbung, Methodenaufruf Java Basics - Anfänger-Themen 4
M Problem bei Methodenaufruf aus ActionListener Java Basics - Anfänger-Themen 5
G Methodenaufruf aus der Kommandozeile Java Basics - Anfänger-Themen 28
N Methodenaufruf funtioniert nicht Java Basics - Anfänger-Themen 3
C Methodenaufruf mit Variablen die gesetzt werden Java Basics - Anfänger-Themen 10
Antoras mit ActionListener/Methodenaufruf Textfelder zeichnen Java Basics - Anfänger-Themen 4
G Dynamischer Methodenaufruf Java Basics - Anfänger-Themen 3
G Methodenaufruf über ein Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
H ungültige methodenaufruf Java Basics - Anfänger-Themen 16
G Methodenaufruf Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben