Menu

Files d'attente [Résolu]

Messages postés
17
Date d'inscription
vendredi 22 mars 2019
Statut
Membre
Dernière intervention
11 avril 2019
- - Dernière réponse : marie12_2000
Messages postés
17
Date d'inscription
vendredi 22 mars 2019
Statut
Membre
Dernière intervention
11 avril 2019
- 29 mars 2019 à 15:10
Bonjour tout le monde,
Je suis entrain d'apprendre les files et j'arrive pas trop à comprendre le concept
J'aimerai comprendre exactement une certaine instruction

 Queue=(F.tete+F.long-1)Mod Max+1 

Donc pourquoi le mod max et le +1 ...
Merci
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
5135
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
24 juin 2019
778
1
Merci
Bonjour marie12_2000,

Si la file a une taille donnée, par exemple parce qu'elle est implémentée sous la forme de tableau en C de 5 éléments, alors le comportement suivant est en principe implémentable :

- comme une file d'attente, lorsqu'un nouvel élément est intégré à la file, ce nouvel élément est placé à l'arrière de la file
- à mesure que l'on ajoute des éléments, l'arrière est successivement à 0, 1, 2, 3, 4, et le début de la file à 0,
- si la capacité de la file est pleine, avant de pouvoir insérer un nouvel élément, l'élément qui est en tête de la file doit sortir de la file pour laisser la place au nouveau
- plutôt que de décaler tout le contenu du tableau C, on peut juste déplacer la position de la tête de file
- le début de file passera à la position 1, et la position 0 devient l'arrière de la file, où le nouvel élément peut être placé
- etc.

Pour énumérer les éléments de la file, on partira de la tête de file, on parcours le tableau jusqu'à la fin et on boucle sur la position 0 si on n'a pas parcouru tous les éléments de la liste, jusqu'à ce que tous les éléments soient parcourus.

On manque de contexte pour savoir ce que représentent exactement les différents éléments de ta ligne de code (qui n'est pas en C d'ailleurs), mais si "mod" représente bien "modulo" et donc le reste de la division entière (opérateur
%
en C) il est typiquement utilisé sur la dimension de la file, pour calculer un index adapté à la plage des valeurs possibles, dans notre exemple le reste de la division entière par 5 donne, quel que soit le dividende, un résultat de 0 à 4.

Dal

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 45852 internautes nous ont dit merci ce mois-ci

marie12_2000
Messages postés
17
Date d'inscription
vendredi 22 mars 2019
Statut
Membre
Dernière intervention
11 avril 2019
-
Ah oui pardon j'ai oublié de remplacer mod par % et le point virgule a la fin . Mod represente effectivement le modulo , merci pour ta reponse c'est gentil :)
Commenter la réponse de [Dal]