Files d'attente

Résolu/Fermé
marie12_2000 Messages postés 27 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 29 février 2020 - 29 mars 2019 à 11:56
marie12_2000 Messages postés 27 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 29 février 2020 - 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

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 29 mars 2019 à 12:37
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
1
marie12_2000 Messages postés 27 Date d'inscription vendredi 22 mars 2019 Statut Membre Dernière intervention 29 février 2020
29 mars 2019 à 15:10
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 :)
0