Ich habe versucht, eine Enthält Methode in meine BSTree Klasse zu implementieren, die einen Wert annehmen und dann prüfen, durch alle Knoten zu sehen, ob es in dem Baum enthalten ist. Ich denke, dass der Algorithmus korrekt ist, aber ich weiß nicht, warum ich immer wieder eine Stackoverflow in dem ersten if-Anweisung zu bekommen. Irgendwelche Ideen?
public Boolean Contains(T item)
{
Node<T> node = root;
return contains(root, item);
}
private Boolean contains(Node<T> node, T item)
{
if (item.CompareTo(root.Data) == 0)
{
return true;//return 0 if found
}
else
{
if (item.CompareTo(root.Data) > 0)
{
//root = node.Left;
Node<T> left = root.Left;
return(contains(root, item));
}
else
{
if (item.CompareTo(root.Data) < 0)
{
//root = node.Right;
Node<T> right = root.Right;
return(contains(root, item));
}
else
{
return false;//return 1 if not found
}
}
}
}













