Oui, tu as raison, il ne sert à rien, je mettais un booléen if a=nil, mais je peux mettre ceci à la place:à quoi sert le booléen trouvé dans le paramètre de supprimer puisque transmis par valeur ?
Par contre pour la question 3), je l'ai testé et elle fonctionne bien,merci , mais j'ai une question, est-ce que tu pourrais me donner un exemple, avec là procédure ordre_croissant, car j'ai du mal avec la récursivité, dis moi, si c'est bien comme ceci ou non:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure supprimer (var a:liste); var valeur:integer; begin if a=nil then write('La liste est vide')
Soit a une liste contenant les éléments 5,1 et 4 (dans cette ordre)
si a <> nil
then
c:=5
a contient les éléments 1 et 4
c:=4
a contient l'élément 1
c:=1
a est vide
b^.info:=1;
b contient 1
on passe à la condition "si" (je n'ai pas encore dépilé dans l'ordre inverse, mais je vais le faire maintenant)
if a<>nil
(c'est ici mon problème a est-elle vide, ou alors a contient 1 ??)
Je vais dire que a contient 1
on créé b^.suivant, et on dépile: b:=b^.suivant, et b^.info=4
donc b contient 1 et 4
........et b contient 1,4 et 5
est-ce que mon passage en vert est bon ?
(c'est au niveau de la récursivité que je bloque un peu)
Je te remercie d'avance pour tes conseils, c'est vraiment sympa
(encore merci )
Partager