Ich muss einen binären Suchbaum erstellen, indem ich in jeden Knoten Daten über Arzneimittel einfüge. Die Knoten von einem Zeichennamen sortiert werden .I've eine Fehlermeldung anzeigt, ist ein Segmentierungsfehler Fehler bei strcmp(name,(*parent)->name) < 0
.Hier der Code:C binärer Suchbaum Einfügung nach Zeichenelement
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct date
{
int dd,mm,yyyy;
};
typedef struct node
{
char name[50];
float price;
int amount;
struct date date_rel;
struct date date_exp;
struct node *left , *right;
} node;
node *insert_node(node **parent,char name[])
{
node *current = NULL;
if(*parent == NULL)
{
current = (node *) malloc(sizeof(node));
strcpy(current->name,name);
printf("\nPrice =");
scanf("%f",¤t->price);
printf("\nAmount =");
scanf("%d",¤t->amount);
printf("\nRelease date =");
scanf("%d.%d.%d",¤t->date_rel.dd,¤t->date_rel.mm,¤t->date_rel.yyyy);
printf("\nExpiration date =");
scanf("%d.%d.%d",¤t->date_exp.dd,¤t->date_exp.mm,¤t->date_exp.yyyy);
*parent = current;
}
else
{
if(strcmp(name,(*parent)->name) < 0)
{
(*parent)->left = insert_node(&(*parent)->left,name);
}
else
{
(*parent)->right = insert_node(&(*parent)->right,name);
}
}
return *parent;
}
int main()
{
node *root = NULL;
char name[50] ;
int total_prod;
printf("The total number of medicines is:");
scanf("%d",&total_prod);
while(total_prod != 0)
{
printf("Name =");
scanf("%s",name);
insert_node(&root,name);
total_prod--;
}
return 0;
}
Danke! Was für ein dummes Problem. Ich habe es nicht gesehen. –