Ik heb geprobeerd om de uitvoering van een Bevat methode in mijn BSTree klasse die een waarde zal accepteren en laat vervolgens door alle knooppunten te zien of het is opgenomen in de boom. Ik denk dat het algoritme correct is, maar ik weet niet waarom ik blijf een StackOverFlowException bij de eerste if-statement. Iemand een idee?
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
}
}
}
}













