Dos maneras simples de ordenar datos: por quién llegó primero, o por quién llegó último.
Es una lista de elementos ordenada, donde solo se puede agregar o quitar por los extremos. Nunca se toca el medio.
La diferencia entre los dos tipos está en quién sale primero:
Sale primero el que entró primero. Como una fila de personas.
Sale primero el que entró último. Como una pila de platos.
Piensa en la fila del supermercado: quien llega primero, paga primero. Nadie se salta el orden.
Agrega un elemento nuevo al final de la fila.
Quita el elemento que está al frente de la fila.
Encolamos tres personas y luego atendemos a una.
| Acción | Cola resultante |
|---|---|
| encolar( A ) | [ A ] |
| encolar( B ) | [ A, B ] |
| encolar( C ) | [ A, B, C ] |
| desencolar() | [ B, C ] sale A |
Piensa en una pila de platos: el último que pusiste arriba es el primero que sacas.
Pone un elemento nuevo arriba de todo.
Quita el elemento que está arriba de todo.
Apilamos tres platos y luego retiramos uno.
| Acción | Pila resultante |
|---|---|
| apilar( A ) | [ A ] |
| apilar( B ) | [ A, B ] |
| apilar( C ) | [ A, B, C ] |
| desapilar() | [ A, B ] sale C |
| FIFO | LIFO | |
|---|---|---|
| Sale primero | El que entró primero | El que entró último |
| Ejemplo diario | Fila del banco | Pila de platos |
| Se agrega | Al final | Arriba |
| Se quita | Al frente | Arriba |
| Uso típico | Impresoras, atención al cliente | Ctrl+Z, historial del navegador |
FIFO: el primero en entrar es el primero en salir. Como una fila.
LIFO: el último en entrar es el primero en salir. Como una pila.
Ambas estructuras solo permiten trabajar por los extremos, nunca desde el medio.