《剑指offer》用两个栈实现队列
来源:互联网 发布:多益网络上市了吗 编辑:程序博客网 时间:2024/06/10 16:48
一、题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
二、输入描述
三、输出描述
四、牛客网提供的框架
class Solution{public: void push(int node) { } int pop() { }private: stack<int> stack1; stack<int> stack2;};
五、解题思路
使用两个堆栈,其中一个是用来存储数据,另外一个是辅助“出队列”作用。入队是,保存到堆栈stack1中。这时堆栈里数据的顺序刚好跟队列的相反。出队列时,通过辅助栈stack2的作用,取出栈底元素。出队列后,再把辅助栈的数据放回stack1中。
六、代码
class Solution{public: void push(int node) { stack1.push(node); } int pop() { int len = stack1.size(); if(len < 1) return -1; for(int i = 0; i < len - 1; i++) { int top = stack1.top(); stack2.push(top); stack1.pop(); } int headNum = stack1.top(); stack1.pop(); for(int i = 0; i < len - 1; i++) { int top = stack2.top(); stack1.push(top); stack2.pop(); } return headNum; }private: stack<int> stack1; stack<int> stack2;};
0 0
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指offer|用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer----用两个栈实现队列
- 网狐客户端调试
- OpenBR之一:Windows下配置OpenBR
- a
- binbinyyang---接着上一篇文章 说锁屏上显示Activity
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined解决方案
- 《剑指offer》用两个栈实现队列
- 《剑指offer》:[51]数组中的重复数字
- idea配置spark开发环境时产生的错误总结
- 响应式布局设置--@media only screen and
- iOS 去掉cell高亮的状态
- android webview 调用微信 h5 支付方式
- Linux环境下,部署web项目
- AndroidStudio部署项目时出现错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- Android网络请求框架--AsyncHttpClient