面试15之用两个栈去实现一个队列
来源:互联网 发布:电脑软件限制策略 编辑:程序博客网 时间:2024/05/29 04:35
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
<分析>:
入队:将元素进栈A
出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈;
如果不为空,栈B直接出栈。
#include<iostream>using namespace std;#include<stack>class Solution{public:void Push(int node){stack1.push(node);}int Pop(){if(stack2.empty()){while(!stack1.empty())//这里要注意,要一次性的把stack1中的元素都导入到stack2中,要不然元素的相对应位置就会发生变化。{int temp = stack1.top();stack2.push(temp);stack1.pop();}}int temp = stack2.top();stack2.pop();return temp;}private:stack<int> stack1; //这个栈用来保存元素stack<int> stack2;//这个栈用来弹出元素};void test(){Solution s;s.Push(0);s.Push(1);s.Push(3);s.Push(7);s.Push(8);cout << s.Pop()<<endl;;}int main(){ test();cout << "hello..."<<endl;return 0;}
0 0
- 面试15之用两个栈去实现一个队列
- 面试---两个栈实现一个队列
- 面试---两个队列实现一个栈
- 【数据结构】 两个栈实现一个队列【面试】
- 用两个栈实现队列之程序员面试经典
- 程序员面试宝典之数据结构基础----C++两个栈实现一个队列功能
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- C++算法之 用两个栈实现一个队列
- 面试题之用两个栈实现一个队列
- 数据结构之用两个队列实现一个栈
- C++之用两个栈实现一个队列
- 栈&队列面试题之两个队列实现一个栈
- 面试系列7--用两个栈实现一个队列的功能
- 用两个栈实现一个队列——我作为面试官的小结
- 用两个栈实现一个队列——我作为面试官的小结
- 用两个栈实现一个队列——我作为面试官的小结
- 用两个栈实现一个队列——我作为面试官的小结
- Shiro注解
- 网站添加 https
- UIActivityViewController使用
- Java实现数据结构——二叉查找树
- oracle进程介绍
- 面试15之用两个栈去实现一个队列
- 工厂模式(静态工厂模式、工厂方法模式、抽象工厂模式)
- Android 7.0 系统相机崩溃解决android.os.FileUriExposedException
- 排序算法——选择排序法
- Qt|Qt之鼠标样式
- GPGPU-SIM 之 单步编译 BENCHMARK
- OC笔记之控件篇(一)
- POJ
- spring(四)---传统的spring aop编程