Ich versuche, einen Code zu schreiben, um Elemente in einen Binärbaum ohne Rekursion einzufügen.Aber das Problem ich konfrontiert ist, dass jedes Mal, wenn ich versuche, einen Knoten einzufügen, wird es nicht eingefügt und der Baum nicht wachsen wie erwartet. Nur das erste Element bleibt im Baum.Binär Baum Codefehler
void insert(struct node **head1,int data1)
{
struct node *temp1,*temp;
temp=*head1;
struct node *datatemp,*prevtemp;
while(temp!=NULL)
{
if(temp->data < data1)
{
temp=temp->right;
}
else if(temp->data > data1)
{
temp=temp->left;
}
}
datatemp=(struct node *)malloc(sizeof(struct node));
datatemp->data=data1;
datatemp->right=NULL;
datatemp->left=NULL;
temp=datatemp;
}
Bitte helfen..ich habe versucht zu debuggen, aber ich kann den Fehler in meiner Logik nicht finden.
Sie könnten Ihren Tag von C++ zu C bearbeiten, da Sie anscheinend die Sprache C verwenden. Bitte lies dies auch: [mcve]. – anatolyg
Was denkst du soll das 'temp = datatemp;' tun? – StoryTeller
Stellen Sie sicher, dass Sie den Fall behandeln, in dem die zweite Nummer, die Sie einfügen möchten, dieselbe wie die erste Nummer ist. Ihr Code behandelt < & >, aber nicht == – attaboy182