bonsoir,
j'essaye de modélisation une file avec un tableau statique et pour optimiser la place, je souhaite faire une file circulaire.
avant de coder tout ça , j'essaye dèjà de faire l'algo. j'ai trouvé des codes sur ce site mais je ne comprends pas l'incrémentation de certains indices.
voilà ce que j'ai :
taille_maximale : 10
file : tableau d'entier de 0 à 9
la file étant en fifo j'ai besoin de deux indices:
indice_ins : indice de la case pour l'insertion d'un nouveau entier
indice_ext : indice de la case où extraire l'élement
j'utilise un booléen "plein" pour savoir si la file est pleine ou non
pour l'initialisation :
indice_ins et indice_ext prennent la valeur 0, celle de la première case du tableau
plein prend la valeur faux
La file est vide si indice_ins = indice_ext et si plein vaut faux
Pour l'insertion , il faut d'abord vérifié que la file n'est pas plein en vérifiant la valeur du booléen plein , puis on insert à l'indice "indice_ins" et on doit l'incrémenter de 1.
c'est là que mon résonnement differt de ce que je trouve sur le net :
moi je teste si indice_ins == taille_max et si c'est le cas je dis que indice_ins doit prend la valeur 0.
les codes trouvés incrémentent indice_ins avec (indice_ins+1) % taille_max
et je ne vois pas pourquoi :oops:
est ce que quelqu'un pourait m'expliquer s'il vous plait ??
j'ai fais des exécutions papiers des deux résonnements et je n'arrive pas à comprendre "(indice_ins+1) % taille_max" et je doute que mon résonnement soit exaxte vu que je l'ai trouvé nulle part :(
merci d'avance