11.4 findNode

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

11.4 findNode
Servus,

Also, ich verstehe wie ich für die Methode findNode(T value) den BST durchlaufen kann (ohne > oder < Vergleiche),
aber ich weiß nicht, wie soll ich den Knoten finden, “an dem ein neuer Kindknoten erzeugt werden würde”, wenn ich nicht T value vergleichen kann?

Dankesehr.


Am Anfang der Klasse Node steht:

class Node<T extends Comparable<? super T>>{

Das heißt, dass T das Comparable-Interface für T selbst oder Oberklassen davon (bis hin zu Object) implementieren muss. Deswegen kannst du auf jedem T-Objekt die compareTo-Methode des Comparable-Interfaces aufrufen, um so Vergleiche zu realisieren.


Ich denke AverageGuy beschreibt hier ein anderes Problem:

Beispiel:
4
/
2 5
/ \
1 3 6

Wenn du also nach dem Value (Integer) 7 suchst, dann sollte findeNode als Antwort den Knoten 6 zurückgeben, da ja 7 nicht existiert und der Knoten 7 an den Knoten 6 hätte eingefügt werden müssen.

Generell: Wenn ihr mal etwas nicht versteht, dann schaut euch mal den Testcase an und versucht das Beispiel dort nachzuvollziehen.


Solange man nicht die Aufgabenstellung aus den Tests rekonstruieren muss, um zu verstehen was das Blatt von einem will