Ich codiere die Einfügung in eine BST in C. Wenn ich den Baum durchquere, scheint der erste Ausschnitt unwirksam zu sein. Ich kann nicht verstehen, warum es nicht funktioniert. Dies funktioniert nicht:Warum funktioniert der in eine BST einzufügende Code nicht?
void insert(Node* temp, int data)
{
if(temp==NULL)
temp=Newnode(data);
else if(data<temp->data)
insert(temp->left,data);
else if(data>temp->data)
insert(temp->right,data);
}
Dies funktioniert:
Node* insert(Node* temp, int data)
{
if(data<temp->data)
if(temp->left!=NULL) insert(temp->left,data);
else temp->left= Newnode(data);
else if(data>temp->data)
if(temp->right!=NULL) insert(temp->right,data);
else temp->right= Newnode(data);
}
HINWEIS: Ich #define Knoten struct Knoten verwendet haben. Newnode() weist einen neuen Knoten zu und funktioniert perfekt.