이 질문은 스택 작업 당 상각 된 O ( 1 ) 시간 에 두 개의 대기열을 사용하여 스택을 시뮬레이션 할 수 있는지 여부 에 대한 기존 질문에서 영감을 얻었습니다 . 답을 알 수없는 것 같습니다. 다음은 모든 PUSH 작업이 먼저 수행되고 모든 POP 작업이 수행되는 특수한 경우에 해당하는보다 구체적인 질문입니다. 처음에 비어있는 두 개의 대기열을 사용하여 N 요소 목록을 얼마나 효율적 으로 되돌릴 수 있습니까? 법적 운영은 다음과 같습니다.
- 입력 목록에서 다음 요소를 큐에 넣습니다.
- 각 대기열의 헤드에서 요소를 대기열에서 빼고 다시 대기열에 넣습니다 (각 대기열의 꼬리 부분까지).
- 큐의 헤드에서 요소를 큐에서 빼고 출력 목록에 추가하십시오.
입력리스트의 요소로 구성되어있는 경우 , 반전 된 출력 목록 [ N , N - 1 , 을 생성하는 데 필요한 최소 작업 수는 어떻게됩니까 ? . . , 2 , 1 ] 동작? 그것이 O ( N ) 보다 빠르게 성장한다는 증거는 특히 부정적인 것의 원래 질문을 해결할 것이기 때문에 흥미로울 것입니다.
업데이트 (2011 년 1 월 15 일) : 제출 된 답변과 의견에 표시된대로 문제를 해결할 수 있습니다 . Ω ( N ) 의 하한 은 사소하다. 이 범위 중 하나를 향상시킬 수 있습니까?