用有限个栈实现一个队列,保证每个队列操作(在最坏情况下)都只需要常数次栈操作
class Queue { Stack a, b;public: void push(T item) { a.push(T item); } T pop() { if (!b.empty()) { return b.pop(); } while (!a.empty()) { b.push(a.pop()); } return b.pop(); }};每个元素进栈出栈2次,均摊 【用有限个栈实现一个队列,保证每个队列操作(在最坏情况下)都只需要常数次栈操作】
■网友
How to implement a queue with three stacks?以上搬运stackOverflow的答案。
用两个stack来倒来倒去的方法不对。
推荐阅读
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 城管局|明显的官商勾结
- 特斯拉|特斯拉将全面发布全自动驾驶软件最新版,曾承诺年底实现完全无人干预
- 报告书|徐州诺恩固体废物处置有限公司废包装桶再生利用建设项目环境影响公示
- 报告书|徐州诺恩固体废物处置有限公司20000吨/年液废焚烧炉项目环境影响公示
- |徐州建有农家书屋2205家,实现数字书屋全覆盖
- 阿里云|【GET2020】阿里云解航:在线教育帮助线下教育一起实现教育公平和个性化
