[LG]inserer dans une liste chainee
salut;
dans un programme je suis besoin d'une liste chainee de caractere j'ai fait une procedure qui inser a la fin d'une liste chainee mais ca ne marche pas j'ai fait le code suivant pour la procedure:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
procedure inserfin(var x:mot;f:char);
var
q,w:mot;
begin
new(w);
w^.symbole:=f;
w^.suivant:=nil;
if x=nil then
x:=w
else
begin
q:=x;
while q<>nil do
q:=q^.suivant;
q:=w;
end;
end; |
mot c'est un type :
Code:
1 2 3 4 5 6 7
|
type
mot=^lettre;
lettre=record
symbole:char;
suivant:mot;
end; |
j'ai fait une procedure pour charger la liste chainee:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
procedure givmot(var x:mot);
var
i,n:integer;
c:string;
begin
writeln('donner votre chaine');
readln(c);
n:=length(c);
for i:=1 to n do
inserfin(x,c[i]);
end; |
et pour afficher la liste:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
procedure affich(x:mot);
var q:mot;
begin
q:=x;
while q<>nil do
begin
write(q^.symbole);
q:=q^.suivant;
end;
writeln(' fin');
end; |
je fait l'appelle dans mon programme principale le probleme que l'afichage de la liste ne donne que le premier caractere,
l'objectif de mon programme c'est de faire un petite automate pour voire est ce qu'un mot est il accepter par l'automate ou non,tous est apparu normale ,je ne sais pas ou est le probleme.
merci de vos reponces et suggestions