剑指offer--用两个栈实现队列

原创 2017年04月15日 20:55:08

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();

    public void push(int node) {
        stack1.push(node);
    }

    public int pop() {
        if ( stack1.isEmpty() && stack2.isEmpty()){
            return 0;
        }
        if ( stack2.isEmpty()){
            while(!stack1.isEmpty()){
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

八个算法题

一、 *牛牛有n张卡片排成一个序列.每张卡片一面是黑色的,另一面是白色的。 * 初始状态的时候有些卡片是黑色朝上,有些卡片是白色朝上。 * 牛牛现在想要把一些卡片翻过来,得到一种...

序列交换

牛牛有一个长度为n的整数序列s,羊羊要在牛牛的序列中选择不同的两个位置,然后交换这两个位置上的元素。现在需要求出羊羊交换后可以得到的不同的序列个数。(注意被交换的两元素值可能相同)。 如序列{1, ...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

懒加载(延迟加载)

概念:为了推迟和数据库交互的时间,推迟到真正需要这个对象数据的时候。提高系统的性能 通过 asm和cglib二个jar包实现懒加载。Domain是非final的 1、session.load懒加载...

ACM/STEPS Buildings

#include using namespace std; int s[100][100]; int main() {  int n, k, a, b, i, j;  cin>>n; ...

[编程题] 序列交换

牛牛有一个长度为n的整数序列s,羊羊要在牛牛的序列中选择不同的两个位置,然后交换这两个位置上的元素。现在需要求出羊羊交换后可以得到的不同的序列个数。(注意被交换的两元素值可能相同)。 如序列{1, 4...
  • W_X_C
  • W_X_C
  • 2017-08-04 13:58
  • 126

【剑指offer】两队列实现栈与两栈实现队列

题目:用两个栈实现一个队列。队列的声明如下,请实现他的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能 在完成代码之前应该想清楚测试用例: ...

【剑指offer】【用两个栈实现队列】栈属性利用

题目描述用两个栈实现队列用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码实现:/** * * 用两个栈实现队列 * * 用两个栈来实现一个队列,完成...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)