Hallo!
Bin ein Java-Neuling und hab ein paar Fragen.
Ich muss als Aufgabe eine Knotenklasse, welche Nutzdaten und seine beiden Kinder enthält, erstellen.
Das hab ich so gelöst:
Nun ist die erste Aufgabe, eine Methode public boolean isLeaf() zu erstellen, die zeigt, ob ein Knoten ein Blatt ist. Da isLeaf() keinen Knoten überliefert bekommt, bin ich mir etwas unsicher. Hab das dann so gelöst:
Ist das so korrekt? (bei testNode bin ich mir unsicher)
Und zu guter letzt noch eine Frage zu der Methode public int getNumberofNodes(), also Anzahl aller Knoten einschließlich der Wurzel. Da hab ich folgendes, bin mir aber sehr unsicher.
Wäre super, wenn ihr mir eure Meinung sagt und mir Fehler zeigen könntet!
Bin ein Java-Neuling und hab ein paar Fragen.
Ich muss als Aufgabe eine Knotenklasse, welche Nutzdaten und seine beiden Kinder enthält, erstellen.
Das hab ich so gelöst:
Java:
public class BinaryTree {
/**
* The first node of the tree
*/
private BinaryTree first = null;
private BinaryTree current = first;
/**
* Node
*/
Friend friend;
/**
* left child
*/
BinaryTree left;
/**
* right child
*/
BinaryTree right;
BinaryTree(Friend friend, BinaryTree left, BinaryTree right) {
this.friend = friend;
this.left = left;
this.right = right;
}
}
Nun ist die erste Aufgabe, eine Methode public boolean isLeaf() zu erstellen, die zeigt, ob ein Knoten ein Blatt ist. Da isLeaf() keinen Knoten überliefert bekommt, bin ich mir etwas unsicher. Hab das dann so gelöst:
Java:
public boolean isLeaf() {
BinaryTree testNode = new BinaryTree(friend, left, right);
if (testNode.left == null && testNode.right == null) {
return true;
} else {
return false;
}
}
Ist das so korrekt? (bei testNode bin ich mir unsicher)
Und zu guter letzt noch eine Frage zu der Methode public int getNumberofNodes(), also Anzahl aller Knoten einschließlich der Wurzel. Da hab ich folgendes, bin mir aber sehr unsicher.
Java:
public int getNumberofNodes() {
int counter = 1;
if (current.right != null) {
counter++;
current = current.right;
getNumberofNodes();
}
if (current.left != null) {
counter++;
current = current.left;
getNumberofNodes();
}
current = first;
return counter;
}
Wäre super, wenn ihr mir eure Meinung sagt und mir Fehler zeigen könntet!