Hallo Leute,
ich habe einen Binärbaum gegeben und muss in diesen neue Elemente einfügen. In der Klasse ist eine Methode insert(Comparable elem) vorhanden, die neue Elemente rekursiv einfügt. Nun muss ich eine Methode insertLoop(Comparable elem) implementieren, die das selbe wie insert macht nur eben nicht rekursiv sondern mit einer Schleife also iterativ.
Ich hätte zuerst überprüft, ob das neue Element größer oder kleiner als die Wurzel ist, wenn kleiner hätte ich mittels for-Schleife den linken Teilbaum durchlaufen und bei item == null mein neues Element eingefügt (am Ende noch neue null Elemente erzeugt), wenn größer, das selbe für den rechten Teilbaum.
Nun weiß ich nicht, wie ich die for-Schleifen implementieren kann, da man ja bei Binärbäume nicht sowas wie length bei Arrays hat.
Quellcode von der rekursiven Methode:
Ich hoffe ihr bringt mich auf die Sprünge.
LG ElifÖzt
ich habe einen Binärbaum gegeben und muss in diesen neue Elemente einfügen. In der Klasse ist eine Methode insert(Comparable elem) vorhanden, die neue Elemente rekursiv einfügt. Nun muss ich eine Methode insertLoop(Comparable elem) implementieren, die das selbe wie insert macht nur eben nicht rekursiv sondern mit einer Schleife also iterativ.
Ich hätte zuerst überprüft, ob das neue Element größer oder kleiner als die Wurzel ist, wenn kleiner hätte ich mittels for-Schleife den linken Teilbaum durchlaufen und bei item == null mein neues Element eingefügt (am Ende noch neue null Elemente erzeugt), wenn größer, das selbe für den rechten Teilbaum.
Nun weiß ich nicht, wie ich die for-Schleifen implementieren kann, da man ja bei Binärbäume nicht sowas wie length bei Arrays hat.
Quellcode von der rekursiven Methode:
Java:
public void insert(Comparable elem)
{
if (item == null)
{
item = elem;
left = new BinTree();
right = new BinTree();
} else {
BinTree next;
if (item.compareTo(elem) > 0)
next = left;
else
next = right;
next.insert(elem);
}
}
Ich hoffe ihr bringt mich auf die Sprünge.
LG ElifÖzt