Lorsque j'envoie une requête à ma BST pour revenir à la valeur AT / F lors de la constate si l'élément est trouvé ou non, cela fonctionne correctement lorsque cela est vrai, mais provoque un crash retardé lorsque l'élément n'est pas dans la BST.
Je ne peux pas comprendre cela pour la vie de moi. P>
.cpp p> principal p> merci. p> p>
3 Réponses :
Vous n'avez aucun moyen d'arrêter la récursion dans FINDHELPER code>, vous avez donc éventuellement le courant de désarférence lorsqu'il s'agit d'une nullptr. P>
Le problème est que vous ne vérifiez jamais de voir si vous rencontrez un nullptr.
Quelque chose comme ça résoudrait le problème: P>
bool BinarySearchTree::findHelper(Node* current, std::string title){ if (current->title.compare(title) == 0) return 1; if (current->title.compare(title) < 0 && current->left != nullptr) { return findHelper(current->left, title); } else if(current->right != nullptr) { return findHelper(current->right, title); } return 0; }
Ahh. Ça a du sens. Je vais travailler dessus. Merci.
Je ne savais pas que vous avez posté le code de suivi. Cela résolu certainement. Je vais vérifier cette réponse lorsque la minuterie me laisse. Merci beaucoup.
Aucun problème! Je suis heureux d'avoir pu aider.
Lorsque vous récupérez, vous devez retourner tout ce que l'appel récursif se retourne, pas 0. Vous ne renvoyez que 0 si vous atteignez la fin de l'arborescence.