C++ 二叉树,构造函数

C++ 二叉树,构造函数,c++,tree,binary-tree,C++,Tree,Binary Tree,我试图将一个字符串传递给二叉树的构造函数,并使第一个字符成为根。然而,无论出于何种原因,我不能将第一个值赋给root的值,而是整个程序崩溃。有人知道它为什么会崩溃吗 class PrefixTree { private: struct TreeNode { char character; TreeNode * left; TreeNode * right; }; TreeNode* root; public:

我试图将一个字符串传递给二叉树的构造函数,并使第一个字符成为根。然而,无论出于何种原因,我不能将第一个值赋给root的值,而是整个程序崩溃。有人知道它为什么会崩溃吗

  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;
   // . . .
}
另外,不要忘记在析构函数中删除它(并正确处理副本)