Bonjour à tous,
Voilà j'ai un petit souci pour insérer en queue d'une liste une autre liste.
Si je simplifie ma structure de donnée juste pour comprendre ma faute de raisonnement, supposons que j'ai mon type liste défini comme celui ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
type List = ^Cellule;
Cellule =
  record
    mot : string;
    s : List
  end;
En supposant que l'on dispose une Liste p à laquelle on veut rajouter d'autres mots, j'ai dans mon programme principal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if p = NIL then creer(p,mot)
   else ajout(p,mot);
avec :
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
procedure creer(var p : List; mot : string);
var q:List;
begin
     new(q);
     q^.mot := mot;
     q^.s :=NIL;
     p:=q;
end;
 
procedure ajout(var p : List; mot:string);
var r,q : List;
begin
 creer(r,mot);
 q:=p;
 while q<>NIL do
   q:=q^.s;
 q^.s := r;
  p:=q;
end;
Je ne sais comment faire pour que la procédure ajout dans laquelle c'est ici que je veux insérer r en queue à p fonctionne.

Merci d'avance