J'apprends des files d'attente à partir d'un livre. L'auteur explique l'opération d'insertion d'un élément dans la file d'attente à l'aide du code suivant.C Problème de programmation de la file d'attente
#define MAX 100
char *p[MAX];
int spos = 0; // spos: holds the index of the **next free** storage location
int rpos = 0;// rpos: holds the index of the next item to retrieve
void qstore(char *q)
{
if(spos==MAX) {
printf("List Full\n");
return;
}
p[spos] = q;
spos++;
}
Ainsi, selon le code ci-dessus, une file d'attente est pleine, si FS = 100 i.e. le dernier élément du tableau. Maintenant, puisque spos détient l'index du prochain emplacement de stockage libre, puis lorsque spos = 100, la dernière position dans le tableau est vide. Alors pourquoi est-il expliqué comme Liste complète? Ce code ne devrait-il pas être modifié de sorte qu'il permette de remplir la dernière position du tableau ou est-ce que quelque chose me manque?
Merci.
Ha! Je pense que je comprends maintenant. Étant donné que la taille du tableau est 100, alors le dernier élément du tableau est réellement p [99], donc spos = 100 signifie que la file d'attente est pleine. Un concept si simple et si régulier que je me suis trompé. * sent sa tête, et s'en va en marmonnant * – Naruto
Merci les gars. Je ne sais pas comment j'ai raté ce point. Pauvre moi (: – Naruto
arrêter de lire "Naruto" et lire plus de code: P – rano