Ik heb een huiswerk die vraag weer me invoegen in een tekstdocument 100 studenten namen en id's geformatteerd als (achternaam Voornaam ID) ad zet dan de twee binaire zoekboom. De belangrijkste BST zal achternamen en een verwijzing naar de andere BST welke namen en ID's bevatten. Dit is de eerste keer dat ik ben trynig pointers gebruiken (*, ->, &) dus ik ben verloren. Ik slaagde erin om de tekst met de volgende functie te importeren
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);
}
En nu ga ik proberen om de insert functie die is heel moeilijk voor me maken, omdat ik niet de argumenten kan begrijpen dat ze moet nemen
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;
}
Hier is de structuur definitie:
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;
Kan iemand me helpen de insert functie te corrigeren, omdat ik niet kan begrijpen welke argumenten ik moet gebruiken om de achternaam te redden en ik zal de rest doen mezelf. Ik denk dat mijn probleem is het inzetstuk functie. Toch bedankt.













