Liste chaînée simple
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1•
Liste chaînée simple
le probleme est:
On décide de créer une liste chaînée contenant des entiers. Définir les types nécessaires pour la mise en œuvre de cette liste chaînée, et prévoir deux procédure ou fonctions pour ajouter une valeur et afficher le contenu de la liste. Remplir la chaîne avec quelques valeurs. Enfin écrire une procédure pour vider la liste et libérer l'espace mémoire qui lui était associé.
[b]
On décide de créer une liste chaînée contenant des entiers. Définir les types nécessaires pour la mise en œuvre de cette liste chaînée, et prévoir deux procédure ou fonctions pour ajouter une valeur et afficher le contenu de la liste. Remplir la chaîne avec quelques valeurs. Enfin écrire une procédure pour vider la liste et libérer l'espace mémoire qui lui était associé.
[b]
Re: Liste chaînée simple
le code est :type
PCellule = ^Cellule;
Cellule = record
valeur: integer;
suivant: PCellule;
end;
procedure ajouter(var liste: PCellule; valeur: integer);
var
p: PCellule;
begin
new(p);
p^.valeur := valeur;
p^.suivant := liste;
liste := p;
end;
procedure afficher(liste: PCellule);
var
p: PCellule;
begin
p := liste;
while p <> nil do
begin
writeln(p^.valeur);
p := p^.suivant;
end;
end;
procedure vider(liste: PCellule);
var
p, r: PCellule;
begin
p := liste;
while (p <> nil) do
begin
r := p^.suivant;
dispose(p);
p := r;
end;
end;
var
liste: PCellule;
nombre: integer;
begin
writeln('Entrez les nombres à ajouter (0 pour quitter) : ');
readln(nombre);
while nombre <> 0 do
begin
ajouter(liste, nombre);
readln(nombre);
end;
writeln('Valeurs de la liste : ');
afficher(liste);
readln;
vider(liste);
end.







