私はC++言語を学んでいて、BSTを書き込もうとしていますが、問題が発生しています。空のツリーに要素を追加しようとすると、ルートはNULLになりますが、要素を追加した後も、追加が成功したにもかかわらず、ルートはまだNULLです(デバッグモードで見たので、ノードはtmpとして設定されています)。なぜそれが起こるのか分かりません。
struct Node
{
int data;
Node* left;
Node* right;
};
struct Tree
{
Node* root;
};
Tree createTree()
{
Tree tmp;
tmp.root = NULL;
return tmp;
}
void addToNode(Node* node, int value)
{
Node* tmp = new Node;
tmp->data = value;
tmp->left = NULL;
tmp->right = NULL;
if(node == NULL)
node = tmp;
else if(value >= node->data)
addToNode(node->right, value);
else
addToNode(node->left, value);
}
void add(Tree* tree, int value)
{
addToNode(tree->root, value);
}
int _tmain(int argc, _TCHAR* argv[])
{
Tree tree = createTree();
add(&tree, 10);
printf("%d", tree.root->data);
scanf("%*s");
return 0;
}