Une pile est utilisée pour sauvegarder temporairement des

publicité
Les fils d’attente
I.
Représentation contiguë dans un tableau
A B C D
Tête
Queue
Insertion
Suppression
A B C D E F
Tête
Queue
Tête
Queue
A. Initialisation
Var globales
TIND file[1..n]
Entier tete, queue
Procédure initfile
Début
Tete  1
Queue 0
Fin
B. Fonction filevide
Fonction logique filevide
Début
Retourne (tête > queue)
Fin
C. Fonction filepleine
Fonction logique filepleine
Début
Retourne()
Fin
NeoXsysm & DiAboLiK
DUT info 1er année
ALGORITHME
Pages 1/3
Procédure d’ajout
Procédure ajoutelem(valeur)
Val TIND valeur
Début
Si non pilepleine
Alors
Queue  queue + 1
File[queue]  valeur
Finsi
Fin
D. Suppression d’un élément
Procédure suppelem(valeur)
Ref TIND valeur
Début
Si non filevide
Alors
Valeur  file[tête]
Tête  tête + 1
Finsi
Fin
E. Remarque
Dans tous ces algorithmes tête et queue augmente toujours : le tableau risque d’être
très vite saturé.
Pour éviter cet inconvénient, on a deux possibilités :
 Décaler les éléments de la droite vers la gauche à chaque suppression
 Gérer le tableau de manière circulaire
1. Décaler vers la gauche
A B C
D E F G
Suppression AB :
C D E
F G
Tête
Queue
2. Gérer le tableau de manière circulaire
G B C D E F
Queue
Tête
NeoXsysm & DiAboLiK
DUT info 1er année
ALGORITHME
Pages 2/3
{
II.
Représentation par une liste chaînée
Tête
Queue
A. Ajout de valeur
Procédure ajoutelem(valeur)
Val TIND valeur
Début
Si tête = NULL
Alors
Insertete(tete, valeur)
Queue  tête
Sinon
Insertete(queue, valeur)
Queue  (*Queue).suivant
Finsi
Fin
B. Procédure suppression
Procédure suppelem(valeur)
Ref TIND valeur
Début
Si tête <> NULL
Alors
Valeur  (*tête).info
Suppetete(tête)
Si tête = NULL
Alors
Queue  NULL
Fin
Finsi
Fin
NeoXsysm & DiAboLiK
DUT info 1er année
ALGORITHME
Pages 3/3
Téléchargement