Ich arbeite derzeit an einer C++ - Implementierung eines binären Suchbaums. Alles scheint perfekt zu funktionieren, aber meine Suchfunktion gibt mir Probleme.C++ Segmentierungsfehler BST
BinarySearchTree::node* BinarySearchTree::SEARCH(node* x, int key)
{
if(root == NULL) {
cout << "This is an empty tree." << endl;
return NULL;
} else {
if(x->key == key) {
return x;
}
if(x == NULL) {
cout << "Value not in tree." << endl;
return x;
}
if(key < x->key) {
return SEARCH(x->left, key);
} else {
return SEARCH(x->right, key);
}
}
}
Das gibt mir einen Segmentation Fault jedes Mal, wenn ich für einen Schlüsselwert zu suchen, die nicht in dem Baum ist, und wenn der Knotenwert NULL (wie beispielsweise einen Wert ist, der entweder der max wäre oder wenn es min waren enthalten).
Klingt, als ob Sie einen Debugger verwenden müssen. Und Sie überprüfen, ob 'x' null ist, nachdem Sie es dereferenziert haben. –
Ich habe noch nie einen Debugger in einer UNIX-Umgebung verwendet, angenommen, ich sollte herausfinden, wie man das jetzt macht = P. – DJWright97