Université des Sciences et de la Technologie HOUARI BOUMEDIENE
Faculté d'Electronique et d'Informatique
Département d'Informatique
Programmation et Structures de Données
Chapitre IV. Listes Chaînées
Série d'exercices : 3
Exercice 3
Ilyes KHENNAK Maitre de Conférences Classe B
Laboratoire de Recherche en Intelligence Artificielle (LRIA)
Bureau 212, Département Informatique, FEI Exercice 3: Soit L une liste d'entiers positifs. Ecrire une procédure qui permet d'éclater la liste L en deux listes : LP contenant les entiers pairs et LI contenant les entiers impairs. (sans création de nouvelles listes). Type Liste = Enregistrement info : entier; svt : ^ Liste; Fin; Procédure ECLATEMENT(E/L : ^Liste; S/LP, LI : ^Liste); Var PLP, PLI : ^ Liste; /* PLP & PLI sont des pointeurs intermédiaires */ Début LP NULL; /* Initialiser LP à NULL */ LI NULL; /* Initialiser LI à NULL */ Tant que (L<>NULL) /* Parcourir les éléments de L */ Faire Si (L^.info mod 2 = 0) Alors /* Si l'élément pointé par L est pair */ Si (LP = NULL) Alors LP L; PLP LP; /* Si LP est vide, pointer LP & PLP sur le 1er élément de L */ Sinon PLP^.svt L; PLP PLP^.svt; /* pointer.svt de PLP sur l'élément pointé par L */ Fsi; Sinon Si (LI = NULL) Alors LI L; PLI LI; Sinon PLI^.svt L; PLI PLI^.svt; Fsi; Fsi; L L^.svt; /* Pointer L sur l'élément suivant */ Fait; PLI^.svt NULL; /* Initialiser la partie pointeur du dernier élément à NULL */ PLP^.svt NULL; /* Initialiser la partie pointeur du dernier élément à NULL */ Fin; Slide 2 sur 2