J'avais toujours pensé que la "tête" d'une file d'attente était le prochain élément à lire, et je n'ai jamais vraiment remis en question cet usage. Ainsi, une bibliothèque de listes chaînées que j'ai écrite, qui est utilisée pour maintenir les files d'attente, a codifié cette terminologie: nous avons une list1_head
macro qui récupère le premier élément; lors de l'utilisation de cette bibliothèque dans une file d'attente, ce sera le premier élément à supprimer.
Mais un nouveau développeur de l'équipe était habitué à ce que les files d'attente soient implémentées dans l'autre sens. Il a décrit une file d'attente comme se comportant comme un chien: vous insérez à la tête et retirez à la queue. C'est une description assez intelligente pour que je pense que son utilisation doit être plus répandue, et je n'ai pas une description évocatrice similaire de mon utilisation préférée.
Donc, je suppose, il y a deux questions liées: 1, que signifie pour vous la "tête" d'une file d'attente? et 2, pourquoi utilisons-nous le mot «tête» pour décrire ce concept?
la source
Réponses:
Vous entrez au fond de la file d'attente et sortez par le devant. Dans la plupart des sociétés, cela impliquerait que la tête est le front, et les éléments sont retirés de la tête.
Le Javadoc pour Queue semble être d'accord avec la définition classique (c'est-à-dire votre définition d'origine):
la source
Aux États-Unis, ce que les gens appellent communément une ligne, comme dans le cas où vous vous trouvez au bureau de poste, les gens des autres pays anglophones appellent une file d'attente. Ainsi, il est plus facile pour les Américains de garder la terminologie droite si vous remplacez «ligne» par «file d'attente». En d'autres termes, lorsque vous êtes dans la tête ou devant la ligne, vous êtes le prochain à être appelé.
la source
Les deux conventions sont couramment utilisées. D'après mon expérience, lorsque l'on parle de files d'attente en général, l'élément head est le suivant à sortir de la file d'attente, et la queue est l'endroit où les éléments entrent dans la file d'attente. Cela correspond à l'usage quotidien de l'anglais - nous nous alignons à l'arrière et le prochain à servir est à l'avant ou à la tête. (Et si vous coupez, c'est au fond de la ligne pour vous!)
Cependant, lorsqu'une file d'attente (alias FIFO) est implémentée en tant que tampon en anneau , les termes sont généralement inversés, car la partie utilisée du tampon en anneau ressemble à un serpent circulant en cercle. En supposant que le serpent avance, la tête est naturellement la fin qui mène le mouvement, qui est également la fin à laquelle les éléments entrants sont insérés.
la source