J'utilise la méthode récursive pour créer un arbre de recherche binaire. Mon objectif est de trouver l'élément le plus bas dans l'arbre. Voici mon code.
Insertion
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 Fonction
int minValue(node curPtr)
{
node temp = curPtr;
while ( curPtr )
{
temp = curPtr->lChild;
}
return (temp->info);
}
La raison pour laquelle (OMI) mon minValue () entre dans la boucle infinie est due à curPtr est pas toujours NULL. Comment puis-je faire NULL après avoir inséré les données en utilisant la fonction d'insertion ().
EDIT: Trouvé le bug..so stupide de ma part. Merci à Raymond
ci-dessous est le minValue modifié ()
int minValue(node curPtr)
{
node temp = curPtr;
while ( temp->lChild )
{
temp = temp->lChild;
}
return (temp->info);
}
Merci Kelly.













