Ekleme işlevimin doğru olduğuna inanıyorum, ancak yeni düğüm ağacın içine takılmamış gibi görünüyor. Hata nerede olduğunu anlayamadım. Herhangi bir yardım için teşekkür ederim, teşekkürler. düğüm ve ağacın beyanı yokturİkili ağaçta yeni bir düğüm eklenemiyor
: Ben ana işlevi çağırdığınızda yeni bağlantı vermiyor gibi
int Tree::init(){
this->root = NULL; return 1;
}
Node *Tree::insert(int key, Node *p){
if(p == NULL){
Node *novo = new Node();
novo->key = key;
novo->left = NULL;
novo->right = NULL;
p = novo;
}
else if(key < p->key){ p->left = insert(key, p->left); }
else if(key > p->key){ p->right = insert(key, p->right); }
else{ cout << "Error: key already exist" << endl; }
return p;
}
, görünüşe:
class Node{
int key;
Node *right, *left;
}
class Tree{
public:
int init();
Node *root;
Node *insert(int key, Node *p);
};
işlevleri vardır düğüm
int main() {
Tree dictionary;
cout << "enter the key"; cin >> key;
dictionary.insert(key, dictionary.root);
cout << dictionary.root->key;
}
Konu dışı: neden bir kurucu yerine Tree :: init() '? – user4581301
'MCVE'nuz derlenmiyor - gcc ile denedim. –