C++ 二叉树,构造函数
我试图将一个字符串传递给二叉树的构造函数,并使第一个字符成为根。然而,无论出于何种原因,我不能将第一个值赋给root的值,而是整个程序崩溃。有人知道它为什么会崩溃吗C++ 二叉树,构造函数,c++,tree,binary-tree,C++,Tree,Binary Tree,我试图将一个字符串传递给二叉树的构造函数,并使第一个字符成为根。然而,无论出于何种原因,我不能将第一个值赋给root的值,而是整个程序崩溃。有人知道它为什么会崩溃吗 class PrefixTree { private: struct TreeNode { char character; TreeNode * left; TreeNode * right; }; TreeNode* root; public:
class PrefixTree
{
private:
struct TreeNode
{
char character;
TreeNode * left;
TreeNode * right;
};
TreeNode* root;
public:
PrefixTree()
{
root = NULL;
}
PrefixTree(string value)
{
cout<<"wait";
if (value[0] == '*')
{
cout << "Out 1"<<endl;
root->character = value;
cout << "Out 2"<<endl;
root->left = NULL;
cout << "Out 3"<<endl;
root->right = NULL;
}
}
您需要为
根目录分配内存,但您没有这样做
PrefixTree(string value)
{
root = new TreeNode;
// . . .
}
另外,不要忘记在析构函数中删除它(并正确处理副本)。您需要为根目录分配内存,而您没有这样做
PrefixTree(string value)
{
root = new TreeNode;
// . . .
}
另外,不要忘记在析构函数中删除它(并正确处理副本)