二叉树,构造函数

时间:2014-02-16 03:22:03

标签: c++ tree binary-tree

我正在尝试将字符串传递给二叉树的构造函数,并将第一个字符串作为根。但是,无论出于何种原因,我都无法将第一个值分配给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;
    }


}

和主要:

   int main()
{

PrefixTree n("*abc");

 return 0;
 }

1 个答案:

答案 0 :(得分:4)

您需要为root分配内存,而您还没有这样做。

PrefixTree(string value)
{
   root = new TreeNode;
   // . . .
}

另外,不要忘记在析构函数中使用delete(并正确处理副本)。