Ich habe ein paar Methoden für eine BST codieren und ich habe einige Probleme, lassen Sie mich erklären.
Ich habe die folgenden Strukturen:
struct node {
struct node *lChild;
struct node *rChild;
int value;
};
und
struct tree {
struct node *root;
};
zusammen mit den folgenden Funktionen:
struct tree* constructNewTree()
{
struct tree *T=malloc(sizeof(struct tree));
T->root=NULL;
return T;
}
und
struct node* constructNewNode(int i)
{
struct node *N=malloc(sizeof(struct node));
N->value=i;
N->lChild=NULL;
N->rChild=NULL;
return N;
}
Und in meinem Haupt muß ich das nennen (zum Beispiel):
int main()
{
struct tree *T;
T=constructNewTree();
insertKey(5,T);
insertKey(2,T);
insertKey(9,T);
return 0;
}
Was ich tun muß, ist die Funktion insertKey (int i, struct Baum * T) mit der Rekursion zu erstellen.
Ich wollte wie etwas tun
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);
}
}
}
Aber wird es nicht sehr weit, die Rekursion würde mir erlauben, insertKey wieder anzurufen, aber ich kann nicht einen Knoten und einen Baum der gleichen Art und Weise zu verwenden scheinen.
Wer weiß, wie ich könnte das tun, ohne die gegebenen Strukturen zu verändern?
Vielen Dank.













