Salut,
J'ai un souci avec le chapitre que je viens d'attaquer, qui est les listes chaînées.
J'arrive à saisir le principe du cours (d'ailleurs je trouve assez bien celui-ci), mais pour ce qui est de le traduire en code ou de dérouler le code & faire un schéma qui m’aiderait a comprendre, je n'y arrive pas.
En fait j'aimerais dérouler ce code :
Pour arriver à un schéma comme celui-ci :
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
27
28
29
30
31
32
33
34
35
36
37
38
39 PROGRAM liste (input,output); TYPE tpoint = ^tval; tval = record valeur : integer; suivant : tpoint end; VAR prem, precedent, point : tpoint; i, n : integer; BEGIN write('Combien d''éléments comporte votre liste ?'); readln(n); new(prem); { le 1er est particulier : si on le perd, on perd la liste } write('1ère valeur ? '); readln(prem^.valeur); { lecture de l'enregistrement VALEUR de la variable d'adresse (pointée par) PREM } precedent := prem; for i := 2 to n do begin new(point); { création d'une nouvelle variable } write(i,'ième valeur ? '); readln(point^.valeur); precedent^.suivant := point; { mise à jour du chaînage } precedent := point { se préparer pour la prochaine boucle } end; precedent^.suivant := NIL; { NIL signifie "rien" car 0 est un entier, non une adresse } point := prem; { heureusement, on se souvient du premier } for i := 1 to n do begin writeln(point^.valeur); point := point^.suivant { pour la prochaine boucle } end END.
Je pense que ça m’aidera beaucoup à comprendre si j'arrive à le dérouler.
Partager