Byl jsem se snaží implementovat Obsahuje metodu do mého BSTree třídu, která bude přijímat hodnotu a poté kontrolovat přes všechny uzly, aby zjistil, zda je obsažen ve stromu. Domnívám se, že algoritmus je v pořádku, ale já nevím, proč jsem pořád dostat StackOverFlowException na první if. Nějaké nápady?
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
}
}
}
}













