Hallo,
ich habe eine Klasse und eine Methode.
Klasse Tree :
Methode :
Die Methode soll rekursiv die ANzahl der Knoten des Baums wiedergeben aber ich verstehe nicht wie:
Nehmen wir an ich habe einen Baum mit 1000 Knoten und die Wurzel hat 2 Kinder dann gibt mir diese Methode doch nur die zahl 3 zurück. Wo ist da was Rekursiv ?
Die Wurzel ist ja auch nur ein Knoten und hat einen Array mit 2 Kindern drinnen und die Methode tut nichts als diesen Array abzuzählen und das ergebniss +1 zurück zu schicken oder hab ich die rekursion doch übersehen ?!
Danke =)
ich habe eine Klasse und eine Methode.
Klasse Tree :
Java:
class Tree<T> {
private class Node {
Node[] children;
T data;
}
Node root;
}
Methode :
Java:
int countNodes() {
return countNodes(root);
}
int countNodes(Node pos){
int count = 0;
if (pos.children != null)
for (int i=0;i<pos.children.length;i++)
count += countNodes(pos.children[i]);
return count+1;
}
Die Methode soll rekursiv die ANzahl der Knoten des Baums wiedergeben aber ich verstehe nicht wie:
Nehmen wir an ich habe einen Baum mit 1000 Knoten und die Wurzel hat 2 Kinder dann gibt mir diese Methode doch nur die zahl 3 zurück. Wo ist da was Rekursiv ?
Die Wurzel ist ja auch nur ein Knoten und hat einen Array mit 2 Kindern drinnen und die Methode tut nichts als diesen Array abzuzählen und das ergebniss +1 zurück zu schicken oder hab ich die rekursion doch übersehen ?!
Danke =)