Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Sonstige Fragen (http://www.informatikerboard.de/board/board.php?boardid=25)
--- Binaerbaum (http://www.informatikerboard.de/board/thread.php?threadid=2731)


Geschrieben von serus am 06.01.2016 um 18:19:

  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



Geschrieben von eulerscheZahl am 06.01.2016 um 18:23:

 

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.



Geschrieben von serusasdasdasdasd am 06.01.2016 um 18:46:

 

wie kann i durch alle Nachfolger gehen ??
um die kleineste Zahl zu finden soll ich Math.min() verwenden?



Geschrieben von eulerscheZahl am 06.01.2016 um 18:48:

 

Schau dir nochmal an, wie ich die Anzahl der Nachfolgerknoten ermittelt habe. Das kannst du fast kopieren.



Geschrieben von SERUS12 am 06.01.2016 um 19:02:

 

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 ?



Geschrieben von eulerscheZahl am 06.01.2016 um 19:12:

 

Nein, du musst schon irgendwo auf den Inhalt des Knotens zugreifen.



Geschrieben von SERUS13 am 06.01.2016 um 19:16:

 

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?



Geschrieben von eulerscheZahl am 06.01.2016 um 19:18:

 

Wenn du den kleinsten Wert berechnen willst, was interessiert dann die Anzahl der Kindknoten?
Nein, das passt immer noch nicht.



Geschrieben von serus14 am 06.01.2016 um 19:44:

 

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:



Geschrieben von eulerscheZahl am 06.01.2016 um 19:47:

 

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.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH