LeetCode OJ:Implement Queue using Stacks(栈实现队列)
2016-01-05 22:40
567 查看
比较典型的一个题目,easy,不过可以有许多实现方式。
这里用的方式是每次pop完成之后再将stack2中的内容立即倒回stack1中。但是其他的实现也可以不是这样,可以是需要push的时候检查再,如果内容在stack2中,这时候将其倒回在进行push。这里采取第一种比较笨的方法,代码如下所示:
这里用的方式是每次pop完成之后再将stack2中的内容立即倒回stack1中。但是其他的实现也可以不是这样,可以是需要push的时候检查再,如果内容在stack2中,这时候将其倒回在进行push。这里采取第一种比较笨的方法,代码如下所示:
class Queue { public: // Push element x to the back of queue. void push(int x) { s1.push(x); } // Removes the element from in front of queue. void pop(void) { while(!s1.empty()){ s2.push(s1.top()); s1.pop(); } s2.pop(); while(!s2.empty()){ s1.push(s2.top()); s2.pop(); } } // Get the front element. int peek(void) { while(!s1.empty()){ s2.push(s1.top()); s1.pop(); } int ret = s2.top(); while(!s2.empty()){ s1.push(s2.top()); s2.pop(); } return ret; } // Return whether the queue is empty. bool empty(void) { return s1.empty(); } private: stack<int> s1; stack<int> s2; };
相关文章推荐
- 阿里RocketMQ Quick Start
- h5开发之HBuilder优缺点
- SystemUI之功能介绍和UI布局实现
- 【学习笔记】《STL使用入门教程》第三讲:容器deque与list
- 05-Tom猫(UIImageView的简单运用)
- Java 中 StringBuilder 在高性能用法总结
- UE4 创建自己的角色
- UE4 创建自己的角色
- UILabel混合显示动画效果
- String、StringBuffer与StringBuilder之间区别
- [Volley+Gson]获取PM2.5小应用(二)/自定义Volley Request
- UI按钮事件的添加以及delegate的简单应用
- iOS Xib中 UIScrollView 布局注意事项
- ueditor编辑文章时候,复制粘贴内容,原来的图片不能显示
- Maximum Value
- UE4 服务器同步
- 计算UIBezierPath 路径内、路径上的点
- Easy-Ui错误之SyntaxError: function statement requires a name解决办法
- Jdbc Url 设置allowMultiQueries为true和false时底层处理机制研究
- Java 快速排序 (Quick Sort)