Ik gebruik recursieve methode om een Binary Search Boom te creëren. Mijn doel is om de laagste element in de boom te vinden. Hieronder is mijn code.
Invoeging
node insert(node root, int value)
{
if ( root == NULL )
{
return ((newNode(value)));
}
if ( root->info == value )
{
std::cout<<Duplicate entry found!<<std::endl;
return root;
}
else if ( root->info > value )
{
root->lChild = insert(root->lChild,value);
}
else if ( root->info < value )
{
root->rChild = insert(root->rChild,value);
}
else
std::cout<<Some error has occurred.Time to debug!<<std::endl;
return root;
}
MINVALUE Functie
int minValue(node curPtr)
{
node temp = curPtr;
while ( curPtr )
{
temp = curPtr->lChild;
}
return (temp->info);
}
De reden waarom (IMO) mijn MINVALUE () wordt het aangaan van oneindige lus is te wijten aan curPtr is niet altijd NULL. Hoe kan ik het NULL nadat ik de gegevens zijn ingevoegd met insert () functie.
EDIT: Vond de bug..so stom van me. Met dank aan Raymond
Hieronder is de bewerkte MINVALUE ()
int minValue(node curPtr)
{
node temp = curPtr;
while ( temp->lChild )
{
temp = temp->lChild;
}
return (temp->info);
}
Thanks Kelly.













