Я пытаюсь создать функцию, которая вставляет структуру ключа в дерево. Функция правильно устанавливает корень, но не устанавливает ветви при повторном вызове с другим ключом. Вот код:
tree.h:
class tree{
key *tree_root;
public:
tree();
//Constructor
void treedestroy(key *root);
//Tree destructor helper
~tree();
//Destructor
void insert(key* root, key *newkey, int disc);
};
вставить функцию из класса дерева:
void tree::insert(key *root, key *newkey, int disc){
if (root == NULL){
root = newkey;
return;
}
if (newkey->cord[disc] <= root->cord[disc])
insert(root->left, newkey, (disc+1)%4);
else if (newkey->cord[disc] > root->cord[disc])
insert(root->right, newkey, (disc+1)%4);
}
Я немного неопытен с указателями C ++ и мне было интересно, как я могу исправить этот код, чтобы он правильно заполнил дерево?