C++ 节点中的二叉搜索树数据始终为零
我已经在二叉搜索树上工作了一段时间,函数似乎可以工作,但我遇到了与我在链表程序分配中遇到的问题相同的问题。我的节点似乎不想存储数据。我想不出是什么问题。当我打印时,它只打印零,正确的零数,但仍然只有零。这是我的节点代码。我应该提到这是C++。C++ 节点中的二叉搜索树数据始终为零,c++,binary-search-tree,C++,Binary Search Tree,我已经在二叉搜索树上工作了一段时间,函数似乎可以工作,但我遇到了与我在链表程序分配中遇到的问题相同的问题。我的节点似乎不想存储数据。我想不出是什么问题。当我打印时,它只打印零,正确的零数,但仍然只有零。这是我的节点代码。我应该提到这是C++。 class Node{ friend class BST; private: int data; Node *left; Node *right; public: Node(int data);
class Node{
friend class BST;
private:
int data;
Node *left;
Node *right;
public:
Node(int data);
};
我的添加功能是:
void BST::add(Node* node, int d) {
if (root == NULL) {
root = new Node(d);
}
else if (d <= node->data) {
if (node->left == NULL) {
node->left = new Node(d);
}
else {
add(node->left, d);
}
}
else if (d > node->data) {
if (node->right == NULL) {
node->right = new Node(d);
}
else {
add(node->right, d);
}
}
}
void BST::add(Node*Node,int d){
if(root==NULL){
根=新节点(d);
}
else if(d数据){
如果(节点->左==NULL){
节点->左=新节点(d);
}
否则{
添加(节点->左,d);
}
}
else if(d>节点->数据){
如果(节点->右侧==NULL){
节点->右侧=新节点(d);
}
否则{
添加(节点->右侧,d);
}
}
}
为什么不存储数据?请将您的
节点::节点(int)
修改为:
Node::Node(int data) {
left = NULL;
right = NULL;
this->data = data;
}
注释中描述的节点::节点()
根本不存储数据
;而您的BST::add()
依赖它将值存储到Node
s中。您的Node::Node(int)
是如何定义的?Node::Node(int data){left=NULL;right=NULL;data;}