私は二分探索木を構築しています。現在、ツリーにノードを追加する際に問題が発生しています。
void BinaryTree::add(int value, Node* node) {
if(!node)
node = new Node(value);
else if(node->key < value)
this->add(value, node->rightNode);
else if(node->key > value)
this->add(value, node->leftNode);
}
次のコードを呼び出すと、このコードは機能しないようです。
BinaryTree test;
test.add(4, test.root);
test.add(1, test.root);
test.add(5, test.root);
test.add(2, test.root);
test.add(3, test.root);
test.add(7, test.root);
test.add(6, test.root);
最初の add 呼び出しの後、ツリー 'test' のルートはまだ空です。add を呼び出してノードがツリーの正しい場所に移動したときに更新されるように、コードを変更するにはどうすればよいですか? どうもありがとうございました!