[英]Binary Search Tree Data in Nodes always is zero
我已经在Binary搜索树上工作了一段时间,这些函数似乎可以正常工作,但是遇到了链表程序分配时遇到的相同问题。 我的节点似乎不想存储数据。 我不知道是什么问题。 当我打印时,它只打印零,正确的零个数,但仍然只是零。 这是我的节点代码。 我应该提到这是C ++。
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);
}
}
}
为什么不存储数据?
请将您的Node::Node(int)
修改为:
Node::Node(int data) {
left = NULL;
right = NULL;
this->data = data;
}
您在注释中描述的Node::Node()
根本不存储data
。 而您的BST::add()
依靠它将值存储到Node
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.