Cours développé par Dr. Jihène Tounsi Qu’est ce qu’une File ALGORITHME ET STRUCTURES DE DONNÉES II LES FILES Une File est une structure de données séquentielle basé sur le principe « First in First out » La Tête de la File est le premier élément ajouté. La Fin de la File ou la queue est le dernier élément ajouté. Dernier élément inséré Dr. Jihène Tounsi ISG de Sousse Site web http://www.jihenetounsi.com Email: tounsi.jihene@yahoo.fr Premier élément inséré Sens d’ajout des éléments Cours développé par Dr. Jihène Tounsi Principe de fonctionnement On accède à une File soit par sa tête soit par sa Fin (ou queue). L’ajout d’un élément à une file se fait seulement à la Fin de la File. La suppression d’un élément se fait seulement par la Tête de la File. Cours développé par Dr. Jihène Tounsi Les opérations élémentaires CéerFileVide Permet Enfiler Permet de créer une File vide d’ajouter un élément à la fin de la File Défiler Permet de supprimer la Tête de la file (le premier élément ajouté à la file) FileVide Permet de vérifier si la File est vide ou non Les autres opérations découlent de ces dernières Cours développé par Dr. Jihène Tounsi Implémentation de la File Le nombre des éléments à stocker n’est pas connu à l’avance. Utilisation d’un pointeur pour la Tête de la File. Utilisation d’un pointeur pour la Fin de la File Création dynamique des éléments à stocker (variante de la liste chaînée) Destruction des éléments supprimés (destruction de la cellule) Cours développé par Dr. Jihène Tounsi Structure de la File Un enregistrement pour la cellule ou l’élément de la file Donnée : l’élément à stocker. Un pointeur sur l’élément Suivant. Un enregistrement pour la file Un pointeur sur la Tête de la File Un pointeur sur la Fin de la file Cours développé par Dr. Jihène Tounsi Structure de la File Algorithme_ExempleFile; Type Element = enregistrement Donnée:entier Suiv:^element Fin enregistrement File=Enregistrement Tête:^element Fin:^élément Fin Enregistrement Variables F:File Debut …. Fin. Cours développé par Dr. Jihène Tounsi Les opérations élémentaires FileVide(F:File):booléen Une fonction qui Retourne Vrai si la file est vide Faux sinon. Algorithme_ExempleFile; Type … Fonction FileVide(F:File):booléen Debut /*Si la File est vide càd que la tête de la File est Nulle. Il ne pointe sur rien*/ Si(F.Tête==Null) alors Retourner Vrai Sinon Retourner Faux Fin Si Fin Fonction … Debut …. Fin. Cours développé par Dr. Jihène Tounsi Les opérations élémentaires Enfiler(F:File par adresse, e:entier) Cours développé par Dr. Jihène Tounsi Les opérations élémentaires Un procédure qui change l’état de la File actuelle. e: l’élément à ajouter à la File. Les étapes de l’opération : Une fonction retournant l’élément stocké à la Tête de la File. Les étapes de l’opération : Créer un nouvel élément de type élément (NC). Vérifier que l'élément a bien été créé. Défiler(F:File par adresse):entier Vérifier si la File n'est pas vide. Si elle ne l'est pas Affecter « e » à la donnée de l’élément créé et la valeur « Null » au champs Suiv. Si la File est vide Affecter NC à la Fin et à la Tête de la File. Sinon Affecter NC au champs « Suiv » de la Fin de la File Changer la Fin de la File. File Vide L’élément n’a pas été créé : Message d’erreur Stocker dans un élément temporaire (NC) la tête de la File. Stocker dans une variable locale la valeur étant stockée dans la Tête de la File. Décaler la Tête de la File Supprimer l’élément pointé par NC. Si la nouvelle Tête de File est Nulle Mettre Fin de la File à Null. Retourner la valeur de l’élément défilée (variable locale). Message d’erreur Retourner Null Exercice Nous voulons créer un algorithme qui simule l’ordonnancement des processus en utilisant la structure de la File. Afficher le Nom du Processus et son Temps d’exécution lorsqu’il est en état « élu ». Nous allons supposer que les dates d’arrivée sont toutes à zéro. L’ordonnancement à faire Fifo Priorité statique Un algorithme principal avec Un menu principal Initialisation des processus Choisir l’un des deux ordonnancements. Cours développé par Dr. Jihène Tounsi Fin du chapitre 4…
© Copyright 2024