Cette question est inspirée d'une question existante sur la possibilité de simuler une pile à l'aide de deux files d'attente en temps amorti par opération de pile. La réponse semble inconnue. Voici une question plus spécifique, correspondant au cas particulier dans lequel toutes les opérations PUSH sont effectuées en premier, suivies de toutes les opérations POP. Avec quelle efficacité une liste de N éléments peut-elle être inversée à l'aide de deux files d'attente initialement vides? Les opérations légales sont:
- Mettez en file d'attente l'élément suivant de la liste d'entrée (à la fin de l'une ou l'autre file d'attente).
- Supprimez l'élément en tête de chaque file d'attente et remettez-le en file d'attente (à la fin de l'une ou l'autre file d'attente).
- Retirez l'élément en tête de chaque file d'attente et ajoutez-le à la liste de sortie.
Si la liste d'entrée se compose d'éléments , comment le nombre minimum d'opérations nécessaires pour générer la liste de sortie inversée [ N , N - 1 , . . . , 2 , 1 ] se comportent-ils? Une preuve qu'il croît plus vite que O ( N ) serait particulièrement intéressante, car il résoudrait la question initiale par la négative.
Mise à jour (15 janvier 2011): Le problème peut être résolu dans , comme indiqué dans les réponses soumises et leurs commentaires; et une borne inférieure de Ω ( N ) est triviale. L'une ou l'autre de ces limites peut-elle être améliorée?