在C++中赋值给变量时出错 我试图在C++中创建一个二叉树。这就是那棵树 3 / \ 2 5

在C++中赋值给变量时出错 我试图在C++中创建一个二叉树。这就是那棵树 3 / \ 2 5,c++,binary-tree,C++,Binary Tree,对吗?我的意思是,我是否必须将leaves节点的left和right显式设置为null,以便打印树?它应该是大写字母N root->left = new Node(2); root->right = new Node(5); C++是区分大小写的。必须完全按照声明的方式使用标识符。节点与节点不同 此外,二叉树中的叶子终止应该有一些名称。在您的情况下,将NULL分配给以叶终止的子节点似乎是合理的 您可以通过在Node::Nodeint中指定NULL来自动完成此操作。更改您的代码,从


对吗?我的意思是,我是否必须将leaves节点的left和right显式设置为null,以便打印树?

它应该是大写字母N

root->left = new Node(2); 
root->right = new Node(5);
C++是区分大小写的。必须完全按照声明的方式使用标识符。节点与节点不同

此外,二叉树中的叶子终止应该有一些名称。在您的情况下,将NULL分配给以叶终止的子节点似乎是合理的

您可以通过在Node::Nodeint中指定NULL来自动完成此操作。更改您的代码,从

Node(int data) {
    this->data = data;
};
。。。到

Node(int data) {
    this->data = data;
    this->left = NULL;
    this->right = NULL;
};

在这之后,您知道默认情况下所有新创建的节点都会终止,只要您检查子节点是否为NULL,就不会出现打印之类的迭代问题。

Node而不是node@Ari0nhh非常感谢。我怎么会错过呢!这样的耻辱:Nodeint data{this->data=data;left=nullptr;right=nullptr;}为什么不初始化构造函数中的所有数据?@LưuVĩnhPhúc你的意思是什么?它有什么好处?请提供一点详细的答案
  Node *root = new Node(3);
  root->left = new Node(2);
  root->right = new Node(5);

  root->left->left = new Node(1);
  root->left->right= new Node(4);
root->left = new Node(2); 
root->right = new Node(5);
Node(int data) {
    this->data = data;
};
Node(int data) {
    this->data = data;
    this->left = NULL;
    this->right = NULL;
};