我正在尝试将字符串传递给二叉树的构造函数,并将第一个字符串作为根。但是,无论出于何种原因,我都无法将第一个值分配给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;
}
答案 0 :(得分:4)
您需要为root
分配内存,而您还没有这样做。
PrefixTree(string value)
{
root = new TreeNode;
// . . .
}
另外,不要忘记在析构函数中使用delete
(并正确处理副本)。