Apilar y hacer fila: pila y cola
Cuando apilas platos uno sobre otro, ¿cuál tomas primero? El de arriba, el que pusiste al final. Cuando la gente hace fila, ¿quién entra primero? El de adelante, el que llegó primero. Manejar datos tiene estas mismas dos formas. Apilar es una pila, hacer fila es una cola.
Apilar como platos: la pila
Antes aprendimos a colocar
datos en fila.
Esta vez, en lugar de colocarlos,
vamos a apilarlos, uno sobre otro.
Imagina una pila de platos.
Un plato nuevo siempre va arriba,
y también sacas uno de arriba.
Así que el plato que pusiste al final
es el primero que llega a tu mano.
Toca para apilar un plato arriba, luego toca sacar. Siempre sale el de arriba, el último que metiste.
Cada vez que sacabas uno,
el que acababas de poner salía primero.
Lo que entra al final sale primero,
esa es la única promesa de una pila.
Tanto donde metes como donde sacas
es solo el único sitio de arriba,
así que la regla es muy simple.
Dónde es útil esta simplicidad
lo veremos un poco más adelante.
Hacer fila: la cola
Esta vez, en lugar de apilar,
vamos a ponerlos en fila de lado.
Imagina una fila esperando el autobús.
Un recién llegado se pone al fondo,
y cuando llega el bus, sube primero el de adelante.
Así que quien llegó primero
entra primero.
Es justo lo contrario de apilar.
A esta fila se le llama cola.
Toca para añadir una persona al fondo de la fila, luego toca dejar salir. Siempre sale el de adelante, el que llegó primero.
Cada vez que dejabas salir uno,
el que esperó más tiempo salió primero.
Lo que entra primero sale primero,
esa es la promesa de una cola.
Entran por el fondo y salen por delante,
así que el orden de llegada se mantiene tal cual.
Así que, sin colarse,
un turno justo queda garantizado.
Apilar es ultimo-primero, hacer fila es primero-primero.
La pila sirve para deshacer
Cuando te equivocas al escribir
y pulsas deshacer,
lo que acabas de hacer se cancela primero.
Lo que hiciste antes se cancela después.
Las acciones se apilan en orden,
y desde arriba, la última acción,
se van sacando y deshaciendo una por una.
Eso es exactamente una pila.
El botón de atrás funciona igual.
Toca para apilar acciones, luego toca deshacer. La última acción que hiciste se cancela primero, en orden.
Cada vez que pulsabas deshacer,
la acción más reciente desaparecía primero.
Cuando necesitas rebobinar un orden hacia atrás,
nada encaja tan bien como una pila.
Porque sacar primero el último que entró
es en sí mismo un rebobinado.
Entonces, cuando debes mantener el orden
no al revés sino tal como entró,
¿qué deberías usar?
La cola sirve para listas de espera
¿Qué pasa cuando varias personas
mandan impresiones a una impresora?
El documento enviado primero se imprime primero,
y los demás esperan detrás.
Esto es una cola de impresión.
El ticket numerado de un banco es igual.
El número sacado primero se llama primero.
Con justicia, por orden de llegada.
Eso es justo lo que hace una cola.
Toca para añadir un documento a la cola de impresión, luego toca imprimir. El enviado primero se atiende primero, en orden.
Cada vez que pulsabas imprimir,
salía el documento enviado más temprano.
Cuando el orden debe mantenerse tal cual,
nada gana a una cola.
Porque sacar primero el primero que entró
es en sí mismo justicia.
Con los mismos datos, una regla para sacar
cambia el uso así de mucho.
Ahora pongamos las dos juntas y resumamos.
Resumamos
Reunido en una línea, es esto.
Una pila es apilar platos; el último en entrar sale primero.
Una cola es hacer fila; el primero en entrar sale primero.
Deshacer y el botón de atrás son una pila,
las listas de espera y los tickets numerados son una cola.
Una sola regla para meter y sacar
decide el uso.
Apilar es ultimo-primero, hacer fila es primero-primero,
esa sola línea es todo lo que hay que retener.
Toca los puntos clave en orden para repasar. (pila = apilar -> cola = hacer fila -> pila para deshacer -> cola para esperar)
Ahora conoces dos formas
de apilar datos y de ponerlos en fila.
Solo con elegir dónde meter y sacar,
se volvió una herramienta del todo distinta.
Luego conoceremos otra forma
que no es ni fila ni pila.
Una figura donde los datos se ramifican
y se extienden de arriba abajo,
sigamos esa historia en la próxima lección.