// Chaînage : pEncours est le suivant de pPrec 
pPrec→pSuiv ← pEncours 
pPrec←pEncours 
FinSi 
Jusqu’à v=0 
 
// Fin de liste : pSuiv à NIL 
pPrec→pSuiv ← NIL 
Retourne pTete 
FinFonc
c. Parcours de la liste 
Le parcours de la liste est maintenant possible puisque la fonction précédente vous a permis de remplir quelques 
enregistrements. Comme toujours on part du pointeur de tête, puis on passe d’enregistrement en enregistrement 
jusqu’à rencontrer la valeur NIL. 
La fonction parcours_liste reçoit comme argument le pointeur de tête. Une simple boucle va ensuite balayer toute la 
liste et afficher toutes les valeurs qui y sont contenues. 
Fonction parcours_liste(pTete :pointeur sur element) 
Var 
pEncours :pointeur sur élément 
Début 
pEncours←pTete 
Tant que pEncours<>NIL Faire 
Afficher pEncours→valeur 
pEncours ← pEncours→pSuiv 
FinTantQue 
FinFonc
d. Recherche 
Deux types de sous­programmes sont possibles : le premier détermine si l’élément existe dans la liste et retourne un 
booléen, vrai ou faux, selon que l’élément est trouvé ou non. C’est donc une fonction. Le second retourne l’adresse 
de l’élément trouvé et l’adresse de l’élément précédent, vous verrez pourquoi ensuite. C’est donc une procédure car 
une  fonction  ne  peut  retourner  deux  valeurs.  Mais  pourquoi  ne  pas  faire  d’une  pierre  deux  coups,  c’est­à­dire  un 
sous­programme qui va à la fois retourner vrai ou faux, mais aussi des pointeurs sur l’élément courant et précédent ? 
C’est possible car vous pouvez passer des pointeurs comme arguments de fonctions, modifier l’adresse sur laquelle 
ils pointent, et retourner tout de même un booléen. En fait, il est quasiment inutile de retourner un booléen car de 
toute façon si l’élément n’est pas trouvé, pEncours vaudra NIL en sortie de fonction. 
La procédure recherche_liste prend quatre paramètres : 
q La valeur v recherchée. 
q Un pointeur pTete sur la tête de la liste. 
q Un pointeur pPrec sur l’élément précédent, celui trouvé. 
q Un pointeur pEncours sur l’élément trouvé. 
q Un booléen vrai ou faux. 
q Si l’élément est trouvé, pPrec pointe sur celui d’avant, pEncours sur l’élément trouvé. 
q Si l’élément est absent, pEncours vaur NIL et pPrec pointe sur le dernier élément de la liste. 
q Si pPrec vaut NIL, l’élément recherché est le premier de la liste. 
Procédure recherche_liste (E:v:entier, E:pTete, ES : pPrec,pEncours
:pointeurs sur element,S :trouve :boolé en)  
Var 
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
177
Précédent

- 177/220

Suivant