Algorithme et structures de données II Les pointeurs

publicité
ALGORITHME ET
STRUCTURES DE DONNÉES II
LES FILES
Dr. Jihène Tounsi
ISG de Sousse
Site web http://www.jihenetounsi.com
Email: [email protected]
Cours développé par Dr. Jihène Tounsi
Qu’est ce qu’une File



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é
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, e:entier)
Un procédure qui change l’état de la File actuelle.
 e: l’élément à ajouter à 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éé.





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.
L’élément n’a pas été créé : Message d’erreur
Cours développé par Dr. Jihène Tounsi
Les opérations élémentaires

Défiler(F:File):entier


Une fonction retournant l’élément stocké à la Tête de la File.
Les étapes de l’opération :


Vérifier si la File n'est pas vide.
Si elle ne l'est pas







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).
File Vide


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…
Téléchargement