Essa pergunta é inspirada em uma pergunta existente sobre se uma pilha pode ser simulada usando duas filas no tempo amortizado por operação da pilha. A resposta parece ser desconhecida. Aqui está uma pergunta mais específica, correspondente ao caso especial em que todas as operações PUSH são executadas primeiro, seguidas por todas as operações POP. Com que eficiência uma lista de elementos pode ser revertida usando duas filas inicialmente vazias? As operações legais são:N
- Enfileire o próximo elemento da lista de entrada (até o final de qualquer fila).
- Enfileire o elemento na cabeça de qualquer fila e enfileire-o novamente (na cauda de qualquer fila).
- Retire da fila o elemento no início de qualquer fila e adicione-o à lista de saída.
Se a lista de entrada consistir em elementos , como o número mínimo de operações necessárias para gerar a lista de saída reversa se comportar? Uma prova de que cresce mais rápido que seria especialmente interessante, pois resolveria a questão original de forma negativa.[ N , N - 1 , . . . , 2 , 1 ] O ( N )
Atualização (15 de janeiro de 2011): O problema pode ser resolvido em , conforme mostrado nas respostas enviadas e em seus comentários; e um limite inferior de é trivial. Qualquer um desses limites pode ser aprimorado?Ω ( N )