博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个队列实现一个栈
阅读量:4058 次
发布时间:2019-05-25

本文共 1391 字,大约阅读时间需要 4 分钟。

package Queue;import java.util.LinkedList;public class TwoQueueMakeStack {    /**     * 两个队列实现一个栈     * 两个队列中至多只有一个队列中有元素     * 添加元素就是:如果两个队列都没有元素,就将元素添加到队列1中,否则如果哪个队列有元素,就将元素添加到该队列中。     * 删除元素的话比较麻烦,就是先把一个队列中元素全部放到另外一个队列中,只剩下一个元素,这个元素就是要返回的元素     *     */     public static LinkedList
queue1 = new LinkedList<>(); public static LinkedList
queue2 = new LinkedList<>(); public static void push(Integer i){ if(queue1.isEmpty() && queue2.isEmpty()){ queue1.addFirst(i); } if(!queue1.isEmpty()){ queue1.addFirst(i); }else{ queue2.addFirst(i); } } public static Integer pop(){ if(queue1.isEmpty() && queue2.isEmpty()){ throw new RuntimeException("栈中无元素"); } if(!queue1.isEmpty()){ while(queue1.size() > 1){ queue2.addFirst(queue1.removeLast()); } return queue1.removeLast(); }else{ while(queue2.size() > 1){ queue1.addFirst(queue2.removeLast()); } return queue2.removeLast(); } } public static void main(String[] args){ TwoQueueMakeStack stack = new TwoQueueMakeStack(); stack.push(1); stack.push(2); System.out.println(stack.pop()); System.out.println(stack.pop()); }}

 

转载地址:http://xnzji.baihongyu.com/

你可能感兴趣的文章
WAV文件解析
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
android 代码实现圆角
查看>>
flutter-解析json
查看>>
android中shader的使用
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
linux安装usb wifi接收器
查看>>