pEncours, pSuivant :pointeurs sur élément 
Début 
pEncours←pTete 
Tant que pEncoursNIL Faire 
pSuivant←pEncours→pSuiv 
Libérer pEncours 
pEncours←pSuivant 
FinTantQue 
pTete=NIL 
FinFonc
h. Parcours récursif 
Il est possible de remplacer le sous­programme itératif de parcours de la liste par une fonction récursive : le sousprogramme s’appelle lui­même avec l’adresse de l’élément suivant tant que l’élément reçu en argument n’est pas NIL. 
Fonction parcours_recursif(pEncours :pointeur sur element) 
Début 
Si pEncours<>NIL Alors 
Afficher (*pEncours).valeur 
parcours_recursif(pEncours→pSuiv) 
FinSi 
FinFonc
Cette fonction est appelée avec le pointeur de tête comme paramètre. 
parcours_recursif(pTete)
2. L’implémentation en Java 
À  cause  du  fait  qu’en  Java  les  arguments  des  méthodes  ne  sont  pas  en  entrée/sortie  (pour  rappel,  voir  dans  ce 
chapitre  le  point  Les  pointeurs  et  références  ­  Java  et  les  références  ­  Le  piège  en  Java)  il  faut  adapter  quelques 
procédures pour qu’elles retournent une référence vers les divers éléments de la liste. 
import java.io.*; 
 
class element { 
int valeur; 
element pSuiv=null; 
} 
 
class chap8_liste { 
// Fonction de saisie 
static int saisir() { 
String txt; 
int vretour=0; 
BufferedReader saisie; 
 
saisie=new BufferedReader(new InputStreamReader(System.in)); 
try { 
txt=saisie.readLine(); 
vretour=Integer.parseInt(txt); 
 
} 
catch(Exception excp) { 
System.out.println("Erreur"); 
} 
return vretour; 
} 
 
// Création de la tête 
static element cree_liste() { 
element pTete; 
 
pTete=new element(); 
pTete.pSuiv=null; 
- 9 -
© ENI Editions - All rigths reserved - Jonifar lina
182
Précédent

- 182/220

Suivant