Meg kell kódolni bizonyos módszerek a BST és van néhány probléma, hadd magyarázzam meg.
Én a következő szerkezetek:
struct node {
struct node *lChild;
struct node *rChild;
int value;
};
és
struct tree {
struct node *root;
};
valamint a következő funkciókat:
struct tree* constructNewTree()
{
struct tree *T=malloc(sizeof(struct tree));
T->root=NULL;
return T;
}
és
struct node* constructNewNode(int i)
{
struct node *N=malloc(sizeof(struct node));
N->value=i;
N->lChild=NULL;
N->rChild=NULL;
return N;
}
És a fő kell hívnom ezt (például):
int main()
{
struct tree *T;
T=constructNewTree();
insertKey(5,T);
insertKey(2,T);
insertKey(9,T);
return 0;
}
Mit kell tennem, hogy megteremtse a funkció insertKey (int i, struct fa * T) a rekurziót.
Akartam csinálni valami hasonlót
void insertKey(int i, struct tree *T)
{
if (T->root==NULL) {
T->root=constructNewNode(i);
return;
}
else {
if (i<=T->root->value) {
T->root->lChild=constructNewNode(i);
else if (i>T->root->value) {
T->root->rChild=constructNewNode(i);
}
}
}
De ez nem jut messzire, a rekurzió lehetővé tenné, hogy hívjam insertKey újra, de nem úgy tűnik, hogy egy csomópont és egy fa ugyanúgy.
Tudja valaki, hogyan tudnám csinálni, hogy anélkül, hogy az adott szerkezetek?
Nagyon szépen köszönjük.













