用两个队列实现一个栈
2015-10-22 08:32
441 查看
1.入栈时,将元素放入队列q1
2.出栈时,先将q1中所有元素出队列并放入队列q2,保留q1中最后一个元素,将其输出;然后将q2中所有元素出队列并放回q1
输出:
栈顶元素:2
栈顶元素:1
2.出栈时,先将q1中所有元素出队列并放入队列q2,保留q1中最后一个元素,将其输出;然后将q2中所有元素出队列并放回q1
package me.wcy.j2se.datastructure; import java.util.LinkedList; import java.util.Queue; /** * 两个队列实现一个栈 * * @author chenyan.wang * */ public class MyStack<E> { public static void main(String[] args) { MyStack<Integer> stack = new MyStack<>(); stack.push(1); stack.push(2); System.out.println("栈顶元素:" + stack.pop()); System.out.println("栈顶元素:" + stack.pop()); } private Queue<E> q1; private Queue<E> q2; public MyStack() { q1 = new LinkedList<>(); q2 = new LinkedList<>(); } public void push(E e) { q1.add(e); } public E pop() { while (q1.size() > 1) { q2.add(q1.poll()); } E e = q1.poll(); while (!q2.isEmpty()) { q1.add(q2.poll()); } return e; } }
输出:
栈顶元素:2
栈顶元素:1
相关文章推荐
- java单引号和双引号的区别
- Python文件操作读写文件
- 我为什么要使用哈希(Hash)
- 《编写有效用例阅读笔记二》
- codevs 1911孤岛营救问题/2219拯救大兵瑞恩
- 机器学习(十)机器学习模型的评价
- hdu 5502 Candy Game(dp)
- 开发 linux内核的技术路线
- leetcode-46、47 Permutations/II 数字的排列组合
- sizeof与strlen详解
- HBase深入分析之RegionServer
- mybatis+spring源码解析(动态代理 spring初始化)
- 用两个栈实现一个队列
- C/C++面试题:class和struct有什么区别?
- Zigzag Iterator 解答
- Windows 下环境变量设置(命令行)
- eclipse jsp html 格式化 format
- **LeetCode-Inorder Successor in BST
- iOS面试整理
- 【状压bfs】ctsc 1999 补丁vs错误