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

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

/** * 使用栈实现队列 * 思路:使用两个栈,加入元素是将值保存到栈A中,取出时将A的值全部放到B中,从B中出栈 * 时间复杂度:均摊时间复杂度为O(1) */public class StackQueue {    private Stack
stackA = new Stack<>(); private Stack
stackB = new Stack<>(); /** * 入队列 * @param data */ public void enQueue(Integer data){ stackA.push(data); } /** * 取出元素 * @return */ public Integer deQueue(){ if(stackB.isEmpty()){ if(stackA.isEmpty()) { return null; } transfer(); } return stackB.pop(); } /** * 将栈A中的元素的值移到B栈中 */ private void transfer(){ while (!stackA.isEmpty()) { stackB.push(stackA.pop()); } } public static void main(String[] args) { StackQueue stackQueue = new StackQueue(); stackQueue.enQueue(1); stackQueue.enQueue(2); stackQueue.enQueue(3); System.out.println(stackQueue.deQueue()); System.out.println(stackQueue.deQueue()); stackQueue.enQueue(4); System.out.println(stackQueue.deQueue()); System.out.println(stackQueue.deQueue()); }}

 

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

你可能感兴趣的文章
iOS菜鸟学习—— NSSortDescriptor的使用
查看>>
hdu 3787 hdoj 3787
查看>>
hdu 3790 hdoj 3790
查看>>
hdu 3789 hdoj 3789
查看>>
hdu 3788 hdoj 3788
查看>>
zju 1003 zoj 1003
查看>>
zju 1004 zoj 1004
查看>>
zju 1005 zoj 1005
查看>>
zju 1006 zoj 1006
查看>>
【虚拟机】虚拟化架构与系统部署(Windows系统安装)
查看>>
字节跳动安卓开发实习生面试分享
查看>>
好书分享之——《能力陷进》
查看>>
阅读笔记《c++ primer》
查看>>
阅读笔记《C++标准程序库》
查看>>
基于mirror driver的windows屏幕录像
查看>>
C语言8
查看>>
Qt实现简单延时
查看>>
qml有关矩形说明
查看>>
在qt中使用QSplitter设置初始比例setStretchFactor失效的解决方法
查看>>
repeater的使用
查看>>