4.剑指offer_用两个栈模拟一个队列
来源:互联网 发布:视频剪辑软件哪个好 编辑:程序博客网 时间:2024/06/06 00:09
前言:这道题很简单,第一次做时,提交了一次;第二次做时,连续提交了三次。而且代码也变的很烂.
不上心什么都做不好
1. 基本想法
假设两个栈分别人stack1 和stack2
- 进栈时,进栈stack1
- 出栈时,
- 如果stack2栈不为空,则将stack2的栈顶元素作为返回元素
- 如果stack2为空,但是stack1不为空,那么将stack1栈中的元素push进stack2,而后取出stack2的栈顶元素作为返回元素
Note: 特殊情况处理.
2.代码
二代代码
class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack1.empty() && stack2.empty()){ cout<<"queue is empty"<<endl; return 0; } int t; if(stack2.size()){ t=stack2.top(); stack2.pop(); }else{ while(stack1.size()){ t=stack1.top(); stack1.pop(); stack2.push(t); } t=stack2.top(); stack2.pop(); } return t; }private: stack<int> stack1; stack<int> stack2;};
初代代码
class Solution{public: void push(int node) { stack1.push(node); } int pop() { int t,_size; _size=stack2.size(); while( _size==0 && stack1.size()){ t=stack1.top(); stack2.push(t); stack1.pop(); } t=stack2.top(); stack2.pop(); return t; }private: stack<int> stack1; stack<int> stack2;};
0 0
- 4.剑指offer_用两个栈模拟一个队列
- 剑指offer_用两个栈实现队列
- 剑指offer_栈和队列---用两个栈实现一个队列
- 剑指Offer_编程题 用两个栈实现队列
- 用两个栈模拟一个队列
- 用两个栈模拟一个队列
- 用两个队列模拟一个栈
- 用两个栈模拟一个队列
- 用两个队列模拟一个栈
- 用两个栈模拟一个队列
- 用两个栈模拟一个队列
- 两个栈模拟一个队列/两个队列模拟一个栈
- 两个栈模拟一个队列
- 两个队列模拟一个栈
- 两个队列模拟一个栈
- 两个队列模拟一个栈
- 两个栈模拟一个队列
- 两个队列模拟一个栈
- IDEA基础
- 这个英语哟
- CCF NOI1075 F函数
- Ajax,Jquery请求WebService
- JavaFx 3D文件导入
- 4.剑指offer_用两个栈模拟一个队列
- 画圆
- B1011. A+B和C (15')
- 拓扑排序的简单实现
- AngularJS指令
- 链表1:从尾到头打印链表
- 《深入理解Java虚拟机》学习笔记
- buntu系统下python2.7和python3.5版本切换,更改系统和eclipse中python默认版本
- win32的输出int类型