Binärer Suchbaum - Size als Variabel in innerer Klasse speichern

skuki

Aktives Mitglied
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.

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:

ARadauer

Top Contributor
evtl nach jeder veränderung vom baum ein findSize machen

public int findSize(Node root){
if(root == null){
size = 0;
return 0;
}

size= findSize(root.leftChild) + findSize(root.rightChild) +1;
return size;
}

und alternativ noch eine getSize anbieten
public int getSize(){
return size;
}
 

CSHW89

Bekanntes Mitglied
Warum als Variable in der Node-Klasse? Ich würde eine size-Variable in der Klasse Tree erstellen, und im Tree-Konstruktor auf 0 setzen. Dann bei jedem insert size um eins erhöhen, wenn wirklich ein Element eingefügt wird. Beim Löschen demendsprechend.
Java:
public class Tree {
	Node root;
        int size;
       
       public Tree() {
              root = null;
              size = 0;
       }
           
       public void insert(int key){
		Node newNode = new Node(key);
		
		if(root == null){
			root = newNode; 
                        size = 1;
		}else{
			Node focusNode = root;
			Node parent;
			
			while(true){
				parent = focusNode;
				
				if(key < focusNode.key){
					focusNode = focusNode.leftChild;
					
					if(focusNode == null){
						parent.leftChild = newNode;
                                                size++;
						return;
					}
				} else{
					
					focusNode = focusNode.rightChild;
					
					if(focusNode == null){
						parent.rightChild = newNode;
                                                size++;
						return;
					}
					
				}
				
			}
		}
	}
lg Kevin
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Cassy3 Binärer Suchbaum Knoten rauslöschen Java Basics - Anfänger-Themen 1
G Java Binärer Suchbaum Java Basics - Anfänger-Themen 1
G Binärer Suchbaum Knoten zählen Java Basics - Anfänger-Themen 1
L Binärer Suchbaum Java Basics - Anfänger-Themen 2
U Binärer Suchbaum delete Java Basics - Anfänger-Themen 1
E binärer suchbaum Java Basics - Anfänger-Themen 8
K Binärer Suchbaum Java Basics - Anfänger-Themen 3
D Binärer Suchbaum Java Basics - Anfänger-Themen 11
Q Binärer suchbaum Java Basics - Anfänger-Themen 2
Y Binärer Suchbaum Java Basics - Anfänger-Themen 5
M Binärer Suchbaum Höhe Java Basics - Anfänger-Themen 6
G Hoffe jemand kann mir ein paar Tips geben:binärer Suchbaum Java Basics - Anfänger-Themen 3
E Binärer Suchbaum Java Basics - Anfänger-Themen 7
R binärer Suchbaum Java Basics - Anfänger-Themen 1
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
H binärer String nach int convertieren Java Basics - Anfänger-Themen 3
T Binärer String zu Integer Java Basics - Anfänger-Themen 12
P Binärer Baum mit Composite-Entwurfsmuster Java Basics - Anfänger-Themen 2
S binärer string in negativen int umwandeln Java Basics - Anfänger-Themen 4
C binärer Exponentenbereich bezogen auf das Dezimalsystem Java Basics - Anfänger-Themen 2
G Binärer Baum Java Basics - Anfänger-Themen 3
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
T binärer Baum Java Basics - Anfänger-Themen 3
R binärer Baum Java Basics - Anfänger-Themen 2
O Suchbaum Elternknoten finden Level eines Knoten bestimmen Java Basics - Anfänger-Themen 24
N ID3 - Suchbaum ertellen! Java Basics - Anfänger-Themen 0
M Suchbaum implementieren Java Basics - Anfänger-Themen 8
C Methoden Methode zu einem Binären Suchbaum Java Basics - Anfänger-Themen 8
J Suchbaum Java Basics - Anfänger-Themen 3
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
N Binären Suchbaum erstellen, nachzuvollziehen Java Basics - Anfänger-Themen 0
W binären Suchbaum Kantenanzahl Java Basics - Anfänger-Themen 3
G Rekursion Suchbaum Java Basics - Anfänger-Themen 2
W Löschen Datenknoten Suchbaum Java Basics - Anfänger-Themen 4
H Suchbaum iterativ absteigen? Java Basics - Anfänger-Themen 3
N Tiefe im binären Suchbaum Java Basics - Anfänger-Themen 9
I Rekursives Löschen in Binärem Suchbaum Java Basics - Anfänger-Themen 2
A Suchbaum Java Basics - Anfänger-Themen 4
DasDogma Suche im Suchbaum Java Basics - Anfänger-Themen 2
D suchbaum out of heap space Java Basics - Anfänger-Themen 8
G Binäre Suchbaum + Erstellung des Programmes Java Basics - Anfänger-Themen 4
Bierhumpen Suchbaum problem. Java Basics - Anfänger-Themen 8
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
A ArrayList - size() nur nach bestimmtem index anzeigen lassen Java Basics - Anfänger-Themen 13
R AES Key 256 Illegal Key Size auch bei Änderung der Policy Java Basics - Anfänger-Themen 3
P Butten Size Java Basics - Anfänger-Themen 1
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
T negativ array size exception Java Basics - Anfänger-Themen 9
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
T Buffer size Java Basics - Anfänger-Themen 22
V LinkedList size() Java Basics - Anfänger-Themen 2
P Leere Arraylist hat size von 1? Java Basics - Anfänger-Themen 3
ruutaiokwu Iterator oder .size ??? Java Basics - Anfänger-Themen 6
T ArrayList size nicht gefunden Java Basics - Anfänger-Themen 3
E Höherer Index als Size in ArrayList Java Basics - Anfänger-Themen 9
E Frage zur Methode size() der Klasse ZipFile Java Basics - Anfänger-Themen 2
K List (ArrayList) und size() Methode Java Basics - Anfänger-Themen 8
G heap size vergrößern Java Basics - Anfänger-Themen 6
B Iterables und size() Java Basics - Anfänger-Themen 9
U ArrayList.size() Java Basics - Anfänger-Themen 14
E Heap Size einstellen Java Basics - Anfänger-Themen 7
B File.size() ? Java Basics - Anfänger-Themen 11
C Size JTextField in GridBagLayout Java Basics - Anfänger-Themen 2
G Static Vector gibt immer size()=0!!! Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben