Esta pregunta está inspirada en una pregunta existente sobre si una pila se puede simular usando dos colas en el tiempo amortizado por operación de pila. La respuesta parece ser desconocida. Aquí hay una pregunta más específica, correspondiente al caso especial en el que todas las operaciones PUSH se realizan primero, seguidas de todas las operaciones POP. ¿Cuán eficientemente se puede revertir una lista de elementos usando dos colas inicialmente vacías? Las operaciones legales son:N
- Poner en cola el siguiente elemento de la lista de entrada (al final de cualquiera de las colas).
- Elimine el elemento en la cabecera de cualquiera de las colas y vuelva a colocarlo en cola (hasta la cola de cualquiera de las colas).
- Elimine el elemento en la cabecera de cualquiera de las colas y agréguelo a la lista de salida.
Si la lista de entrada consta de elementos , ¿cómo funciona el número mínimo de operaciones necesarias para generar la lista de salida invertida comportarse? Una prueba de que crece más rápido que O (N) sería especialmente interesante, ya que resolvería la pregunta original en forma negativa.[ N , N - 1 , . . . , 2 , 1 ] O ( N )
Actualización (15 de enero de 2011): el problema se puede resolver en , como se muestra en las respuestas enviadas y sus comentarios; y un límite inferior de es trivial. ¿Se puede mejorar cualquiera de estos límites?