J'écris un programme qui lit dans un "dossier d'étudiant" si vous voulez, puis le sépare en 4 arbres de recherche binaires basés sur les données. J'essaye de supprimer un noeud, mais au lieu de le supprimer, je voudrais simplement mettre un drapeau dans la structure, ce qui me permet de savoir qu'il a été "supprimé". Ceci est mon code et il me donne plusieurs erreurs:Arbre de recherche binaire, supprimer le noeud
void deleteNode(TreeNodePtr *treePtr, SREC R, unsigned long key)/*ADD HOW*/
{
printf("I got into the delete function.\n");
/*empty*/
if(*treePtr != NULL)
{
if(R.SID<(*treePtr)->SID)/*Not empty*/
{
printf("less than\n");
deleteNode((*treePtr)->leftPtr, R, key);
}
else if(R.SID>(*treePtr)->SID)
{
printf("more than.\n");
deleteNode((*treePtr)->rightPtr, R, key);
}
else
{
treePtr->exists = 1;
printf("Are we deleted yet?\n");
}
}
else
{
fprintf(stderr,"Could not locate student with ID.\n");
}
}
Les erreurs sont: Note: attendu 'struct treeNode **', mais l'argument est de type 'struct treeNode *' erreur: 'treeNode struct' n'a aucun membre nommé 'SID'. Je suis sûr que je manque juste une petite chose mais je ne sais pas ce que c'est. Des idées?
Et vos définitions de structure sont: –
Quel est le point de 'key'? – jxh
Également nous montrer la définition pour les types 'TreeNodePtr' et' SREC'. –