Les Allergies
Alimentaires
Posez votre question Signaler

[Pascal] Trier liste chaînée

assouma - Dernière réponse le 28 déc. 2008 à 16:20
Bonjour,
est-ce- que je peux trier une liste chainée et comment??svp aidez moi
cette liste chainée contient des mots de type string(le trie par ordre alphabétique)
en language Pascal;
merci.
Lire la suite 

[Pascal] Trier liste chaînée »

2 réponses
Réponse
+1
moins plus
salut
voici mon prog et j'ai 1 prblm ds ce prog,ds la procedure d'affichage (il fait l'inverse) je ne sais pas ou est le probléme, et pour le tri aussi (je ne sais pas exactement ou est le probléme),svp aidez moi j'ai besoin de ce program urgent
un grand MERCI.

program liste_chainee;
uses wincrt;
type ptrElem= ^Element;
Element= record
mot:string[20];
suivant:ptrElem;
end;
var f:text;
liste,liste2:ptrElem;


procedure insertion_tete(var f:text);
var i,n:integer;
nom:string;
mot:string[20];
begin
writeln (' combien de mots que vous voulez entrer:');
readln(n);
writeln(' Entrer le nom de ce fichier:');
readln(nom);
assign (f,nom);
rewrite(f);
writeln(' entrer les mots: ');
i:=0;
repeat
begin
readln(mot);
writeln(f,mot);
i:=i+1;
end;
until i=n;
close(f);
end;


procedure inserer_liste(var listeC:ptrElem);
var elem:ptrElem;
n,i:integer; mot:string;

begin
reset (f);
elem:=nil;
REPEAT
begin
new(listec);
readln(f,mot);

listec^.mot:=mot;
listec^.suivant:=elem;
elem:=listec;
end;
UNTIL eof(f);close(f);
end;



procedure Affichage (var listeA:ptrElem);
var elem:ptrElem; mot:string;
begin
elem:=listeA;
write (' inversement l`ordre de la liste : ');
while( elem<>nil) do
begin
write('',elem^.mot,'');
elem:=elem^.suivant;
end;
end;


PROCEDURE recherche(var l:ptrelem);
var p:ptrelem;b:boolean;motE:string;
begin
write (' entrer mot,por le trouver ou non : ');
p:=l;
b:=false;
read (motE);
while (p<>nil) and( b=false) do
begin
if p^.mot =motE then BEGIN b:=true ;writeln(' ce mot existe dans la liste'); END
else
begiN
p:=p^.suivant;
end;

end;
end;
procedure tri (l1:ptrelem);
var t:string ; n,i:integer;
echange:boolean;

begin
echange:=true;
writeln (' combien de mot que vous avez entrer:');
readln (n);
while echange =true do
begin
for i:=0 to n-2 do
begin
if (l1^.mot)>(l1^.suivant^.mot) then
begin
write ('******************');
t:=l1^.mot;
l1^.mot:=l1^.suivant^.mot;
l1^.suivant^.mot:=t;


end;
l1:=l1^.suivant;
writeln (l1^.mot);
end;
echange:=false;

end;

end;


begin
insertion_tete(f);
inserer_liste(liste);
Affichage(liste);
recherche(liste);
tri(liste);
end.
Ajouter un commentaire
Réponse
+0
moins plus
salut assouma
oui dans le pacal on peut comparer deux string et on peut trier une liste chaInée
MAIS; le comment ..il faut que toi essyes et nous somme là pour t'aider :)
cdlt
Ajouter un commentaire
Ce document intitulé « [Pascal] Trier liste chaînée » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?