c++ - 二叉树,构造函数

标签 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;
 }

最佳答案

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

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

此外,不要忘记在析构函数中删除它(并正确处理拷贝)。

关于c++ - 二叉树,构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806879/

相关文章:

java - 通过循环而不是递归遍历二叉搜索树

c++ - 在 .cpp 中定义常量 int/char*

c++ - 执行前解析 STARTUPINFO hStdInput

java - 为什么我会收到 NoSuchElementException?

java - 如何正确使用 CheckboxTreeViewer?

ruby如何生成一个树形结构形式的数组?

java - 二叉树到数组的中序排序

c++ - 我正在调试这个 C++ 程序。编译器不再显示语法错误,但存在隐藏的逻辑错误

c++ - 编译器 libstdc++ 版本与系统版本

python - 将目录树表示为 JSON