Binaerbaum

Neue Frage »

Auf diesen Beitrag antworten »
serus Binaerbaum

Meine Frage:
ich bin serus,
ich habe ein technisches Problem
ich kann nicht mehr kommentar schreiben oder einfach eine Nachricht schreiben

forsetzung zu meiner Frage :
der Baum ist nicht sortiert

Meine Ideen:
00
 
Auf diesen Beitrag antworten »
eulerscheZahl

Du kannst auf binärbaum nicht mehr antworten?
Würde mich sehr wundern, eigentlich sollten da auch Gäste schreiben können.

Dann musst du rekursiv durch alle Nachfolgeknoten gehen. Als Ergebnis lieferst du jeweils die bisher kleinste gefundene Zahl des Teilbaums zurück. So kriegst du das Minimum für die linke und rechte Hälfte, aus denen du dann wiederum das Minimum berechnen kannst.
Auf diesen Beitrag antworten »
serusasdasdasdasd

wie kann i durch alle Nachfolger gehen ??
um die kleineste Zahl zu finden soll ich Math.min() verwenden?
Auf diesen Beitrag antworten »
eulerscheZahl

Schau dir nochmal an, wie ich die Anzahl der Nachfolgerknoten ermittelt habe. Das kannst du fast kopieren.
 
Auf diesen Beitrag antworten »
SERUS12

int result = 1; //der aktuelle Knoten
int x = 0;
if (left != null) result += left.countChildsRecurs();

if (right != null) result += right.countChildsRecurs();
result = Math.min(x ,right.countChildsRecurs());
return result;
so meinst du ?
Auf diesen Beitrag antworten »
eulerscheZahl

Nein, du musst schon irgendwo auf den Inhalt des Knotens zugreifen.
Auf diesen Beitrag antworten »
SERUS13

int result = 1; //der aktuelle Knoten
int x = 0;
if (left != null) result += left.countChildsRecurs();

if (right != null) result += right.countChildsRecurs();
x = Math.min(result ,right.countChildsRecurs());
return x;
jz?
Auf diesen Beitrag antworten »
eulerscheZahl

Wenn du den kleinsten Wert berechnen willst, was interessiert dann die Anzahl der Kindknoten?
Nein, das passt immer noch nicht.
Auf diesen Beitrag antworten »
serus14

ich ueberlege aber kriege nicht hin unglücklich
es faellt mir was ein
schreibe ich if schleife also
if (right != null) result += right.countChildsRecurs() {
if( x < parent.right){ :


god:
Auf diesen Beitrag antworten »
eulerscheZahl

countChildsRecurs ist hier fehl am Platz.
Schreibe eine neue Funktion und rufe dann die in der Rekursion auf.

Und result=1 ist auch falsch. Irgendwo muss ja der Wert des Knotens berücksichtigt werden, dort wäre ein guter Zeitpunkt.
 
Neue Frage »
Antworten »


Verwandte Themen