Se connecter / S'enregistrer
Votre question

inverse d'une liste chainee

Tags :
  • Programmation
Dernière réponse : dans Programmation
26 Juillet 2007 18:36:34

salut a tous
s'il vous plais j'espere votr aideavec la fonction inverse qui retourne l'inverse d'une liste chainee
j'ai pu faire
liste inverse(liste *l)
{
liste c=*l,p=NULL,s;
while(c!=NULL)
{
s=c->suivant;
c->suivant=p;
p=c;
}
return p;
}

mes amis
j'ai execute et ca marche mais ce que je n'ai pas compris est:
je croix que apres quelque boucle c sera null avant qu'on est l'inverse de la matrice.et s prend a la pemiere boucle la valeur du 2eme elt de la liste ensuite je ne sais jamais que se passe
merci pour votre aide

Autres pages sur : inverse liste chainee

a b L Programmation
26 Juillet 2007 21:35:38

p est la liste résultante.

Fais un dessin avec les flèche et "exécute ton programme à la main".
Là, tu verrais qu'il te manque un "c=s;" après le "p=c;"

En gros, ce qu'il faut faire, c'est que le pointeur qui pointe sur le suivant, tu le fais pointer sur le précédent.
Pour celà, il te faut mémoriser le précédent (avec p), le suivant (avec s) et le courant (avec c). Pour passer à l'élément quivant, il faut que le nouveau précent soit l'ancien courant, et que le nouveau courant soit l'ancien suivant, le nouveau suivant se recalcule à la prochaine boucle.
27 Juillet 2007 14:22:45

merci beaucoup cricky
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS