Bonjour à tous;
J'ai une liste d'entiers définit comme suit:
Et ma question est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Type listeEntiers = ^cellule cellule = record info : integer; suivant : listeEntiers; end;
Ecrire une procédure récursive permettant d'afficher les éléments de la liste dans l'ordre inverse:
J'ai pensé chercher le dernier élément, l'écrire, puis le supprimer et enfin, on recommence ainsi de suite jusqu'à temps qu'il n'y a plus d'élément.
(En faite on part de la fin et on arrive au début, en supprimant les éléments un à un).
Selon vous est-ce que ma démarche est judicieuse ?
Est-ce que ma procédure est juste ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 procedure inverse (a:listeEntiers) ; var p:liste; begin if a = nil then write (' La liste est vide, elle ne contient pas d'élément ') else if a^.suivant = nil then write (a^.info) else begin p:=a while (a^.suivant <> nil ) do begin a:=a^.suivant; end; if a^.suivant = nil then begin write (a^.info); dispose (a); end; end; p:=a; inverse (a); end;
Je vous remercie d'avance pour votre réponse
Partager