संपादित करें: इसे चलाने के माध्यम से gdb देता है
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400e4c in Tree::findKey(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, Tree::Node*) ()
मेरी पहली BST कोड के साथ कुछ मदद की जरूरत है, मैं एक विभाजन गलती बार मिलती है, मुझे लगता है कि है कि यह एक स्मृति रिसाव है? यदि ऐसा है तो मुझे नहीं पता है, जहां / यहाँ ठीक करने के लिए कैसे कोड मुझे लगता है कि है कि समस्या का कारण बन रहे हैं। यह इसलिए है क्योंकि मैं न एक प्रति निर्माता अभी तक सेट है ??
tree.cpp फ़ाइल
Tree::Tree()
{
root = NULL;
}
bool Tree::insert(int k, string s)
{
return insert(root, k, s);
}
//HELPER Call find data with key function
bool Tree::findKey(string& s, int k)
{
return findKey(s, k, root);
}
bool Tree::insert(Node*& currentRoot, int k, string s)
{
if(currentRoot == NULL){
currentRoot = new Node;
currentRoot->key = k;
currentRoot->data = s;
currentRoot->left = NULL;
currentRoot->right = NULL;
return true;
}
else if (currentRoot->key == k)
return false;
else if (currentRoot->key > k)
return insert(currentRoot->left, k, s);
else
return insert (currentRoot->right,k, s);
}
bool Tree::findKey(string& s, int k, Node* currentRoot)
{
if (currentRoot->key == k){
s = root->data;
return true;
}
else if (root->key < k)
return findKey (s, k, root->right);
else if (root->key > k)
return findKey (s, k, root->left);
else
return false;
}
main.cpp
int main()
{
string sout;
Tree test;
test.insert(1, a);
test.insert(2, b);
test.insert(3, c);
test.findKey(sout, 3);
cout<<sout<<endl;
return 0;
}













