SVP, j'aimerais définir une fonction qui inverse les nœuds d'une liste chainée sans utiliser une liste intermédiaire. Par exemple : 5 =>8=>6=>18=>9=>NULL devient : 9 >18=>6=>8=>5=>NULL
Je suis complètement bloqué, svp. J'ai besoin de vous :
Voila le code :
La fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 struct noeud ; typedef noeud* Liste; struct Personne { char nom[25]; int age ; }; struct noeud { Personne liste_pers; Liste suiv ; };
… mais je ne sais pas : chaque fois que j'exécute, il me dit « le programme a cessé de fonctionner » !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Liste inversion(Liste pers) { noeud* point = pers ,*dernier; dernier=pers; while ( dernier->suiv != NULL ) dernier = dernier -> suiv ; while (point != dernier) { point->suiv=dernier->suiv; dernier->suiv=point; pers = pers->suiv ; point=pers; } return pers ; }
Partager