Wie der Titel sagt, brauche ich Hilfe bei der Suche nach max in einem binarytree. Ich versuche es mit Rekursion zu tun.Max in binarytree finden und diesen Knoten zurückgeben
Die Knoten haben eine Instanzvariable der Häufigkeit, die aktualisiert wird, wenn das Element im Knoten ein Duplikat in der Struktur ist und es ist der maximale Wert, der versucht zu erreichen, aber ich bekomme nur eine Null-Null-Erkennung. das ist mein Code:
private Node getMaxFreq(Node node){
Node left = null;
Node right = null;
if(node == null){
System.out.println("tree is empty");
}
if(node.compareTo(node.left) <= 0){
getMaxFreq(node.left);
}
else{
left = node;
}
if(node.compareTo(node.right) <= 0){
getMaxFreq(node.right);
}
else{
right = node;
}
if(left.compareTo(right) > 0){
return left;
}
else{
return right;
}
}
/**
* method to find the node with highest frequency in tree.
* @return node with highest frequency.
*/
public void getMaxFreq(){
Node temp = root;
System.out.println(getMaxFreq(temp));
}
//Node class
public class Node implements Comparable<Node> {
String word;
int freq;
Node left;
Node right;
Node(String word) {
this.word = word;
freq = 1;
}
public String toString() {
return word + " occurs " + freq + " times.";
}
public int compareTo(Node other) {
return Integer.compare(this.freq, other.freq);
}
}
Bitte helfen Sie mir !!!
Können Sie auch die Node-Klasse veröffentlichen? –
aktualisiert @ user3747720 – JohnBanana