Eine ähnliche Frage wurde früher gefragt , dort , aber die Frage hier ist das Gegenteil davon, unter Verwendung von zwei Warteschlangen als Stapel. Die Frage...
Gegeben seien zwei Warteschlangen mit ihren Standard - Operationen ( enqueue
, dequeue
, isempty
, size
), implementieren einen Stapel mit seinen Standard - Operationen ( pop
, push
, isempty
, size
).
Es sollte zwei Versionen der Lösung geben.
- Version A : Der Stapel sollte beim Schieben eines Elements effizient sein. und
- Version B : Der Stapel sollte beim Poppen eines Elements effizient sein.
Ich interessiere mich mehr für den Algorithmus als für bestimmte Sprachimplementierungen. Ich begrüße jedoch Lösungen, die in mir vertrauten Sprachen ausgedrückt werden (Java,c #,Python,vb,Javascript,php).
Pop
in $ O (1) $ und Push
in $ O (\ sqrt {n}) $ amortisierter Zeit gearbeitet wird.