Implementing Retrieve
template <typename T, class P>
bool BST<T,P>::Retrieve (T& t) const
{
Node * n = root_; // travels down the tree
while(n != nullptr)
{
if (pred_(t,n->value_)) // t < n->value_ : go left
{
n = n->lchild_;
}
else if (pred_(n->value_,t)) // t > n->value_ : go right
{
n = n->rchild_;
}
else // t == n->value_ : found
{
if (n->IsDead()) return 0; // tombstones not in set
t = n->value_;
return 1;
}
}
return 0;
}