Siempre pensé que el "encabezado" de una cola como el siguiente elemento a leer, y nunca cuestioné ese uso. Entonces, una biblioteca de listas enlazadas que escribí, que se usa para mantener colas, codificó esa terminología: tenemos una list1_head
macro que recupera el primer elemento; Al usar esta biblioteca en una cola, este será el primer elemento que se eliminará.
Pero un nuevo desarrollador en el equipo estaba acostumbrado a que las colas se implementaran al revés. Describió una cola como comportarse como un perro: se inserta en la cabeza y se retira en la cola. Esta es una descripción lo suficientemente inteligente que siento que su uso debe estar más extendido, y no tengo una descripción evocativa similar de mi uso preferido.
Entonces, supongo que hay dos preguntas relacionadas: 1, ¿qué significa para usted la "cabeza" de una cola? y 2, ¿por qué usamos la palabra "cabeza" para describir ese concepto?
fuente
Respuestas:
Entras al final de la cola y sales desde el frente. En la mayoría de las sociedades, eso implicaría que la cabeza es el frente, y los artículos se eliminan de la cabeza.
El Javadoc para cola parece estar de acuerdo con la definición clásica (es decir, la original):
fuente
Lo que la gente en los Estados Unidos comúnmente llama una línea, como en lo que se para en la oficina de correos, la gente en otros países de habla inglesa llama una cola. Por lo tanto, es más fácil para los estadounidenses mantener la terminología correcta si sustituyes "línea" por "cola". En otras palabras, cuando estás en la cabeza o frente de la línea, eres el próximo en ser llamado.
fuente
Ambas convenciones son de uso común. En mi experiencia, cuando se habla de colas en general, el elemento principal es el siguiente en salir de la cola, y la cola es donde los elementos entran en la cola. Esto es coherente con el uso diario del inglés: nos ponemos en fila en la parte de atrás, y el siguiente en ser atendido es en la parte delantera o en la cabeza. (Y si cortas, ¡está al final de la línea para ti!)
Sin embargo, cuando una cola (también conocida como FIFO) se implementa como un búfer en anillo , los términos generalmente se invierten, porque la parte utilizada del búfer en anillo se asemeja a una serpiente dando vueltas en un círculo. Suponiendo que la serpiente se está moviendo hacia adelante, la cabeza es naturalmente el final que lidera el movimiento, que también es el final en el que se insertan los elementos entrantes.
fuente