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 sousprogramme itératif de parcours de la liste par une fonction récursive : le sousprogramme s’appelle luimê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
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 sousprogramme itératif de parcours de la liste par une fonction récursive : le sousprogramme s’appelle luimê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
