Ik moet een aantal methoden voor een BST-code en ik heb wat problemen, laat het me uitleggen.
Ik heb de volgende structuren:
struct node {
struct node *lChild;
struct node *rChild;
int value;
};
en
struct tree {
struct node *root;
};
samen met de volgende functies:
struct tree* constructNewTree()
{
struct tree *T=malloc(sizeof(struct tree));
T->root=NULL;
return T;
}
en
struct node* constructNewNode(int i)
{
struct node *N=malloc(sizeof(struct node));
N->value=i;
N->lChild=NULL;
N->rChild=NULL;
return N;
}
En in mijn hoofd moet ik dit (bijvoorbeeld) te bellen:
int main()
{
struct tree *T;
T=constructNewTree();
insertKey(5,T);
insertKey(2,T);
insertKey(9,T);
return 0;
}
Wat ik moet doen is om de functie insertKey te maken (int i, struct boom * T) met behulp van de recursie.
Ik wilde iets doen
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);
}
}
}
Maar het hoeft niet zo ver te krijgen, met behulp van de recursie me zou toestaan om insertKey opnieuw te bellen, maar ik kan niet schijnen om een knooppunt en een boom op dezelfde manier te gebruiken.
Weet iemand hoe ik dat kon doen zonder de gegeven structuren?
Dank u zeer.













