私は現在、バイナリ検索ツリーのC++実装に取り組んでいます。すべてが完璧に動作しているように見えますが、私の検索機能が問題を起こしています。C++セグメンテーションフォールト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);
}
}
}
これは私に私がツリーにないキー値を検索するたびにセグメンテーションフォールトを与え、ノードの値が(例えば、それならば最大または最小のどちらかだろう値としてNULLのとき含まれていた)。
あなたはデバッガを使用する必要があります。そして、あなたが逆参照した後に 'x'がヌルであるかどうかチェックしています。 –
私はUNIX環境でデバッガを使ったことがありません。どうすればよいのでしょうか? – DJWright97