Vous êtes sur la page 1sur 3

Université Hassiba Benbouali de Chlef.

2020/2021
Faculté des sciences. 2 Année LMD- Informatique.
Département d’informatique. Algorithmique et structure de données

TP FINAL (à consulter la dernière séance)


1) Construction d’une liste chainée

Vous allez créer une liste chaînée de caractères. Chaque élément de la liste aura la forme de la
structure suivante :

typedef struct Element Element;


struct Element
{
char cart;
Element *suivant;
};
Cette structure contient :
 Une donnée, ici un caractère de type char.
 Un pointeur vers un élément du même type appelé suivant.

2) La structure de contrôle :
C’est une structure pour contrôler l'ensemble de la liste chaînée. Elle aura la forme suivante :

typedef struct Liste Liste;


struct Liste
{
Element *premier;
};

Cette structure Liste contient un pointeur vers le premier élément de la liste. Si on connaît le
premier élément, on peut retrouver tous les autres en « sautant » d'élément en élément à l'aide
des pointeurs suivant.

3) Les fonctions / procédures de gestion d’une liste :


Vous allez créer deux structures qui permettent de gérer une liste chaînée :
 Element, qui correspond à un élément de la liste et que l'on peut dupliquer autant de fois
que nécessaire ;
 Liste, qui contrôle l'ensemble de la liste. Nous n'en aurons besoin qu'en un seul
exemplaire.

Travail à faire :
- Créer la fonction d'initialisation. Elle crée la structure de contrôle et le premier élément de la
liste.

- Vous devez créer une fonction capable d'insérer un nouvel élément en début de liste.

void insert_tete (LISTE& pL, char c) : est la procédure d’insertion du caractère c en tête à pL,
elle prend comme paramètre une liste par référence, car elle va modifier la liste. La fonction
sera appelée dans la façon suivante :
LISTE Tete = NULL; /*La liste doit être impérativement initialisée à NULL lors de sa
déclaration. */
insert_tete (Tete, c) ; /* Appel de la procédure */
- Créer la fonction de recherche, qui recherche l’élément choisit.

LISTE recherche (LISTE L, char c) : La fonction recherche le caractère c dans la liste L


(passée par valeur), la fonction retourne NULL si L est vide ou ne contient pas c, sinon retourne
l’adresse de la sous-liste qui commence par la première occurrence de c.
- Créer la fonction de suppression, qui supprime l’élément choisit.

2
void supprime (LISTE& pL, char c) : La procédure supprime le maillon contenant la
première occurrence de c. Elle ne fait rien si la liste est vide ou ne contient pas c.
- Pour bien visualiser ce que contient votre liste chaînée, une fonction d'affichage serait idéale.
Il suffit de partir du premier élément et d'afficher chaque élément un à un par void
affiche(LISTE L).

Vous aimerez peut-être aussi