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]
pirate- Entier Naturel
- Nombre de messages : 28
Réputation : 0
Points : 6451
Date d'inscription : 30/03/2007
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.
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.
pirate- Entier Naturel
- Nombre de messages : 28
Réputation : 0
Points : 6451
Date d'inscription : 30/03/2007
Sujets similaires
» Le nombre de variables est lui même variable
» CREATION D'UNE LISTE CHAINée en C
» simple code
» salut c'est très simple je crois!!!!
» Exercice corrigé : manipulation simple des tableaux
» CREATION D'UNE LISTE CHAINée en C
» simple code
» salut c'est très simple je crois!!!!
» Exercice corrigé : manipulation simple des tableaux
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum