Année Universitaire : 2024-2025
Département : Informatique
Module : Structure de Données en C
Filière : Informatique Appliquée
Semestre : 3
Travaux Pratiques Structures de Données en C
TP2 : Files dynamique (Représentation avec Liste Chainée)
Objectif : Modélisation d’un système de file d’attente de visiteurs à l’accueil d’une
entreprise avec une file représentée par une liste chaînée.
Un centre d’accueil d’une entreprise gère une file d’attente de visiteurs. Chaque visiteur a un
identifiant unique et un nom. La file d’attente respecte l’ordre d’arrivée, où les visiteurs qui
arrivent en premier sont servis en premier (principe FIFO : First In, First Out). Le type
FileAttente est représenté par la spécification suivante :
Type FileAttente
Utilise Visiteur, Booleen, Entier,Chaine
Opérations
initialiser_file_attente : → FileAttente
enfiler_visiteur : FileAttente x Entier x Chaine → FileAttente
defiler_visiteur :FileAttente → FileAttente
afficher_file_attente : FileAttente →
visiteur_accueil : FileAttente →Visiteur
file_attente_est_vide : FileAttente → Booleen
Précondition
defiler_visiteur(f) est définie ssi file_attente_est_vide(f) = faux
visiteur_accueil(f) est définie ssi file_attente_est_vide(f) = faux
Axiomes
Soit f : FileAttente, id : Entier, nom : Chaine :
file_attente_est_vide(initialiser_file_attente())=vrai
file_attente_est_vide(enfiler_visiteur(initialiser_file_attente(), id, nom)) = faux
defiler_visiteur(enfiler_visiteur(initialiser_file_attente(), id, nom)) =
initialiser_file_attente()
visiteur_accueil(enfiler_visiteur(f, id, nom)) = visiteur_accueil(f), si
file_attente_est_vide(f) = faux
Le type FileAttente représente la file d’attente de visiteurs. Chaque élément de la file est un
visiteur, défini par un identifiant et un nom.
NB : La file doit être implémentée en utilisant une représentation chaînée.
Travail à réaliser :
Le projet doit être structuré en trois fichiers :
▪ file_attente.h : Contiendra la définition des structures et les prototypes des fonctions.
▪ file_attente.c : Contiendra l’implémentation des fonctions relatives à la gestion de la
file d’attente de visiteurs.
▪ utilisation.c : Contiendra la fonction main() qui simulera l’utilisation de la file d’attente
de visiteurs.
Etape 1 : Fichier file_attente.h
1. Définir le type Visiteur caractérisé par un identifiant unique et un nom et un pointeur
sur le visiteur suivant
2. Définir le type FileAttente, une file chainée, caractérisée par sa tête qui pointe sur le
premier visiteur dans la file d’attente, et sa queue qui pointe sur le dernier visiteur dans
la file d’attente.
3. Déclarer les opérations fournies par le TAD FileAttente
Etape 2 : Fichier file_attente.c
Implémenter les opérations suivantes :
1. initialiser_file_attente() : Initialise la file d’attente
2. enfiler_visiteur() : ajoute un nouveau visiteur à la fin de la file d’attente
3. defiler_visiteur() : enlève un visiteur depuis le début de la file d’attente une fois servit
4. afficher_file_attente() : affiche tous les visiteurs de la file d’attente
5. visiteur_accueil() : récupère le visiteur en tête de la file d’attente
6. file_attente_est_vide() : Vérifier si la file d’attente est vide
Etape 3 : Fichier utilisation.c
Ce fichier contient la fonction main() pour tester et utiliser les différents fonctions de gestion
de la file d’attente.
1. Commencer par créer une file d’attente
2. Simuler l’arrivé de plusieurs visiteurs (enfiler les visiteurs)
3. Afficher le visiteur qui sera reçu au premier à l’accueil
4. Simuler le service d’un visiteur ou de plusieurs visiteurs (défiler un visiteur de la file)
5. Afficher les visiteurs de la file d’attente
6. Vérifier si la file d’attente est vide