NeoXsysm & DiAboLiK ALGORITHME Pages 1/3
DUT info 1er année
Les fils d’attente
I. Représentation contiguë dans un tableau
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
A B C D
A B C D E F
Insertion
Suppression
Queue
Tête
Tête
Tête
Queue
Queue
NeoXsysm & DiAboLiK ALGORITHME Pages 2/3
DUT info 1er année
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
2. Gérer le tableau de manière circulaire
A B C D E F G
C D E F G
Suppression AB :
Tête
Queue
G B C D E F
Queue
NeoXsysm & DiAboLiK ALGORITHME Pages 3/3
DUT info 1er année
II. Représentation par une liste chaînée
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
Queue
Tête
{
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !