Toma media docena de libros, pon uno sobre la mesa, APILA el resto encima... este es el montón1, pila1
Ahora toma otra media docena de libros, ponlos de pie en FILA, uno detrás de otro medio abiertos para que no se caigan... En esta fila ahora deja espacio para los otros 6 libros, (imagina que ya hubieras quitado estos, peor déjalos)... sesta es la cola1, fila que tu llamas.
Bien ahora haz manualmente toma el libro del tope del montón1, ponlo en otro montón2... luego toma el que ahora está en la cima del montón1 apílalo encima del montón2... repite hasta que quede vacío el montón1.
Ahora tienes arriba en el montón2 el que antes estaba abajo en el montón1, es decir con otra pila auxliar2, has invertido el orden que había en la pila1...
Ahora es fácil encolar los libros en el orden pedido desde la pila2, basta tomar el de arriba y ponerlo detrás en la cola (de libros que están de pie).
En pseudocódigo:
pila2 = nueva pila
mientras pila1.NoVacia
pila2.push( pila1.pop)
repetir
mientras pila2.novacia
cola.push(pila2.pop)
repetir
Hazme caso y hazlo con los libros, así lo ebntederás bien del todo... y ahora te toca a ti pasarlo al lenguaje que estés usando...