Diese Frage ist von einer bestehenden Frage inspiriert, ob ein Stapel mit zwei Warteschlangen in amortisierter -Zeit pro Stapeloperation simuliert werden kann . Die Antwort scheint unbekannt zu sein. Hier ist eine spezifischere Frage, die dem Sonderfall entspricht, in dem alle PUSH-Operationen zuerst ausgeführt werden, gefolgt von allen POP-Operationen. Wie effizient kann eine Liste von N Elementen unter Verwendung von zwei anfänglich leeren Warteschlangen umgekehrt werden? Die rechtlichen Operationen sind:
- Das nächste Element aus der Eingabeliste in die Warteschlange einreihen (bis zum Ende einer der Warteschlangen).
- Das Element am Anfang einer der beiden Warteschlangen aus der Warteschlange entfernen und erneut in die Warteschlange einreihen (bis zum Ende einer der beiden Warteschlangen).
- Löscht das Element am Anfang einer der Warteschlangen und fügt es der Ausgabeliste hinzu.
Wenn die Eingangsliste besteht aus Elementen , wie funktioniert die minimale Anzahl von Operationen erforderlich , um die umgekehrte Ausgabeliste zu erzeugen [ N , N - 1 , . . . , 2 , 1 ] sich verhalten? Ein Beweis, dass es schneller wächst als O ( N ), wäre besonders interessant, da es die ursprüngliche Frage verneinen würde.
Update (15. Januar 2011): Das Problem kann in gelöst werden , wie in den eingereichten Antworten und ihren Kommentaren gezeigt; und eine Untergrenze von Ω ( N ) ist trivial. Kann eine dieser Grenzen verbessert werden?