Έχω προσπαθήσει να εφαρμόσει μια μέθοδο στην κατηγορία BSTree μου, που θα δεχθεί μια τιμή και στη συνέχεια ελέγξτε μέσα από το σύνολο των κόμβων για να δούμε αν περιέχεται στο δέντρο Περιέχει. Νομίζω ότι ο αλγόριθμος είναι σωστός, αλλά δεν ξέρω γιατί συνεχίζω να πάρει ένα StackOverFlowException στο πρώτο if. Καμιά ιδέα?
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
}
}
}
}













