lintcode 40. 用栈实现队列

使用两个栈来回倒腾可以实现队列。
AC代码:
import java.util.Stack;
public class Queue {
    private Stack<Integer> stack1;
    private Stack<Integer> stack2;
    public Queue() {
        stack1=new Stack<>();
        stack2=new Stack<>();
    }
    public void push(int element) {
        stack1.push(element);
    }
    public int pop() {
        dump(stack1,stack2);
        int res=stack2.pop();
        dump(stack2,stack1);
        return res;
    }
    public int top() {
        dump(stack1,stack2);
        int res=stack2.peek();
        dump(stack2,stack1);
        return res;
    }
    private void dump(Stack<Integer> stack1,Stack<Integer> stack2){
        while(!stack1.isEmpty()){
            stack2.push(stack1.pop());
        }
    }
}
题目来源: http://www.lintcode.com/zh-cn/problem/implement-queue-by-two-stacks/
lintcode 40. 用栈实现队列的更多相关文章
- lintcode :implement queue by two stacks 用栈实现队列
		
题目 用栈实现队列 正如标题所述,你需要使用两个栈来实现队列的一些操作. 队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素. pop和t ...
 - 栈和队列的面试题Java
		
栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...
 - 栈和队列的面试题Java实现
		
栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...
 - Swift 算法实战之路:栈和队列
		
这期的内容有点剑走偏锋,我们来讨论一下栈和队列.Swift语言中没有内设的栈和队列,很多扩展库中使用Generic Type来实现栈或是队列.笔者觉得最实用的实现方法是使用数组,本期主要内容有: 栈和 ...
 - 20162322 朱娅霖 作业005&006 栈,队列
		
20162322 2017-2018-1 <程序设计与数据结构>第五.六周学习总结 教材学习内容总结 集合的介绍(总述) 集合是收集并组织其他对象的对象.主要分为线性集合(集合中的元素排成 ...
 - Chapter 4(栈与队列)
		
1.栈的顺序存储结构 //*********************************stack_array.h************************************ #ifn ...
 - [Algorithm]栈和队列
		
一.栈和队列综合(算法) 1.判断单链表(带头结点)的结点值(字符型)是否中心对称 1 bool IsSymmetry( LinkList& L ) 2 { 3 char S[MAXSIZE] ...
 - 《剑指Offer》-005 -用两个栈实现队列
		
如题 (总结要点) 用两个栈实现队列 栈; 先进后出 队列: 先进先出 两个栈, 相等于两个杯子; 把一本水倒来倒去, 取到杯子底部的元素,并且删除,再倒回去 原文链接 : 借鉴学习文章列表 链接1: ...
 - CLRS10.1-6练习 - 用双栈实现队列
		
双栈实现队列算法: 分别考虑队列两种操作入队和出队,我们假设使用栈s1 s2, s1用来模拟入队,s2用来模拟出队 入队: 入队操作直接执行s1.push即可 出队: 代码实现 package hel ...
 
随机推荐
- MySQL专题3 SQL 优化
			
这两天去京东面试,面试官问了我一个问题,如何优化SQL 我上网查了一下资料,找到了不少方法,做一下记录 (一). 首先使用慢查询分析 通过Mysql 的Slow Query log 可以找到哪些SQ ...
 - 第207天:HTTP协议头字段详解大全
			
本篇重点介绍一下HTTP常用的Header HTTP Header非常之多,很少有人能完全分清这些Header到底是干什么的.鉴于RFC文件规范艰深晦涩难懂,本文对协议规范中列出的HTTP Heade ...
 - SQL Server中使用自定义指定顺序排序
			
比如需要对SQL表中的字段NAME进行如下的排序:张三(Z)李四(L)王五(W)赵六(Z) 如果想按 “ 张三.李四.王五.赵六”的顺序排序,则可以使用以下语句: order by charindex ...
 - Notepad++查找和替换空行/空格/换行
			
Notepad++查找和替换支持正则表达式,功能很强大,但比较复杂因此暂不研究 Notepad++使用正则表达式查找,首先需要勾选查找/替换窗口左下部的“正则表达式(E)”\r\n表示换行,其中\r表 ...
 - 洛谷 Roy&October之取石子
			
题目背景 Roy和October两人在玩一个取石子的游戏. 题目描述 游戏规则是这样的:共有n个石子,两人每次都只能取pk 个(p为质数,k为自然数,且pk小于等于当前剩余石子数),谁取走最后一个石子 ...
 - 聊聊flink Table的groupBy操作
			
本文主要研究一下flink Table的groupBy操作 Table.groupBy flink-table_2.11-1.7.0-sources.jar!/org/apache/flink/tab ...
 - 【BZOJ4198】【NOI2015】荷马史诗(贪心,Huffman树)
			
[BZOJ4198][NOI2015]荷马史诗(贪心,Huffman树) 题面 BZOJ 洛谷 题解 合并果子都是不知道多久以前做过的了.现在才知道原来本质就是一棵哈夫曼树啊. 这题我们仔细研究一下题 ...
 - 洛谷 P3373 【模板】线段树 2  解题报告
			
P3373 [模板]线段树 2 题目描述 如题,已知一个数列,你需要进行下面三种操作: 1.将某区间每一个数乘上\(x\) 2.将某区间每一个数加上\(x\) 3.求出某区间每一个数的和 输入输出格式 ...
 - (转)MS14-068域内提权漏洞总结
			
0x01 漏洞起源 说到ms14-068,不得不说silver ticket,也就是银票.银票是一张tgs,也就是一张服务票据.服务票据是客户端直接发送给服务器,并请求服务资源的.如果服务器没有向域控 ...
 - [ZJOI2011]细胞——斐波那契数列+矩阵加速+dp
			
Description bzoj2323 Solution 题目看起来非常复杂. 本质不同的细胞这个条件显然太啰嗦, 是否有些可以挖掘的性质? 1.发现,只要第一次分裂不同,那么互相之间一定是不同的( ...