Hallo,
ich habe einen Binären Suchbaum mit innerer Node Klasse.
Zuerst habe ich eine Methode im Suchbaum selbst geschrieben die mir die Anzahl der Nodes im Unterbaum darstellt.
Ich greife öfters mit anderen Methoden auf diesen Wert zu, deshalb möchte ich ihn als Variabel für jede Node selbst abspeichern. Wie würdet ihr das machen? Müsste size ja beim Erstellen bzw. beim Insert der Node im Konstruktor angeben oder? Stehe da leider etwas am Schlauch ???:L
Klasse Tree sieht im Grundgerüst so aus:
Vielen Dank!
ich habe einen Binären Suchbaum mit innerer Node Klasse.
Zuerst habe ich eine Methode im Suchbaum selbst geschrieben die mir die Anzahl der Nodes im Unterbaum darstellt.
Java:
public int size() {
if(root==null)
return 0;
return findSize(this.root) -1;
}
public int findSize(Node root){
if(root == null)
return 0;
return findSize(root.leftChild) + findSize(root.rightChild) +1;
}
Ich greife öfters mit anderen Methoden auf diesen Wert zu, deshalb möchte ich ihn als Variabel für jede Node selbst abspeichern. Wie würdet ihr das machen? Müsste size ja beim Erstellen bzw. beim Insert der Node im Konstruktor angeben oder? Stehe da leider etwas am Schlauch ???:L
Klasse Tree sieht im Grundgerüst so aus:
Java:
public class Tree {
Node root;
public void insert(int key){
Node newNode = new Node(key);
if(root == null){
root = newNode;
}else{
Node focusNode = root;
Node parent;
while(true){
parent = focusNode;
if(key < focusNode.key){
focusNode = focusNode.leftChild;
if(focusNode == null){
parent.leftChild = newNode;
return;
}
} else{
focusNode = focusNode.rightChild;
if(focusNode == null){
parent.rightChild = newNode;
return;
}
}
}
}
}
class Node{
int size;
int key;
Node leftChild;
Node rightChild;
}
}
Vielen Dank!
Zuletzt bearbeitet von einem Moderator: