Bonjour.
j'ai une liste chaînée tradi :et une fonction récursive qui cherche à supprimer le 1° maillon contenant une valeur donnée et, et c'est la le pb ..., qui doit renvoyer l'adresse de la liste modifiée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 typedef struct liste { int valeur; struct liste *next; } liste;Or, la fct étant récursive, le pointeur en paramètre se décale d'un maillon jusqu'à trouver le maillon ayant la bonne valeur. Donc je ne vois pas comment récupérer l’adresse du début de la liste....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 liste* efface_premiere_occ_rec(liste *l, int e) { if (l == NULL) { return NULL; } else if (l->valeur == e) { liste *l_tmp = l; l = l->next; free(l_tmp); return l; } else { return efface_premiere_occ_rec(l->next, e); } }
Merci d'avance à Sve@r et autres dieux de la prog pour leurs éclaircissements![]()
Partager