Аналогічне питання було поставлене раніше там , але питання тут протилежний його, використовуючи дві черги в стеці. Питання...
З огляду на дві черги з їх стандартними операціями ( enqueue
, dequeue
, isempty
, size
), реалізувати стек з його стандартними операціями ( pop
, push
, isempty
, size
).
Повинно бути дві версії рішення.
- Версія A : Стек повинен бути ефективним при натисканні на предмет; і
- Версія B : Стек повинен бути ефективним при появі елемента.
Мене алгоритм цікавить більше, ніж будь-які конкретні мовні реалізації. Однак я вітаю рішення, висловлені на мовах, які я знайомий (java,c #,пітон,vb,javascript,php).
Pop
працює в $ O (1) $ і Push
працює в $ O (\ sqrt {n}) $ амортизований час.