J'ai un devoir qui demande vient me insérer dans un document texte 100 étudiants noms et identifiants formatés comme (Nom Prénom ID) annonce puis placez le dans deux arbres binaires de recherche. La principale BST contiendra les noms et un pointeur vers l'autre BST qui contiendra les noms et les ID. Ceci est la première fois que je suis trynig d'utiliser des pointeurs (*, ->, &) donc je suis perdu. J'ai réussi à importer le texte avec la fonction suivante
void loadData(char fname[], Students *st){
struct Students *new;
root=NULL;
int i;
FILE *fp;
fp=fopen(fname,r);
if (fp == NULL) printf(File does not exist\n);
fscanf(fp, %d, &(st->size)); //reads the number of students
free(st->name);
st->name=(Name*) malloc(st->size*(sizeof(Name)));
for (i=0; i<st->size; i++){
fscanf(fp, %s,&st);
insert(root,st.surname);/////////I think here is the problem
//fscanf(fp, %s, &st->name[i].firstname);
// fscanf(fp, %d, &st->name[i].id);
}
fclose(fp);
}
Et maintenant, je suis en train de créer la fonction d'insertion qui est très difficile pour moi parce que je ne comprends pas les arguments qu'elle devrait prendre
STU *insert(STU *node, char *sname)///What should i use here to save take the Surname??
{
if(node==NULL){
node=(NODE *) malloc(sizeof(STU));
strcpy(node->surname);
node->left=NULL;
node->right=NULL;
}
else{
if(strcmp(*sname, node->surname)<0)
insert(node->left, *sname);
else if(strcmp(*sname, node->surname)>0)
insert(node->right, *sname);
}
return node;
}
Voici la définition de la structure:
typedef struct Name{
char firstname[20];
int id;
struct Students *nameleft;
struct Students *nameright;
} Name;
typedef struct Students{
char surname[20];
Name *name;
int size;
struct Students *left;
struct Students *right;
} Students;
typedef struct Students STU;
struct Students *insert(char num);
struct Students *root=NULL;
Quelqu'un peut-il aider à me corriger la fonction d'insertion parce que je ne peux pas comprendre quels arguments je dois utiliser pour enregistrer le nom et je ferai le reste moi-même. Je pense que mon problème est la fonction d'insertion. Merci quand même.













