使用两个堆栈实现队列功能
2016-04-01 21:29
435 查看
[java]使用两个堆栈实现队列功能
具体代码如下:思路如有错误欢迎指正:
import java.util.Stack; /** * 使用两个栈实现队列功能 * 思路: s1 作为入队存储数据的功能 * s2 作为中转件,出队时先把s1中数据取出然后加入到s2中,出队之后再返回到s1中。 * @author miaoqiang * */ public class TwoStackForQueue { private static Stack<Object> s1,s2; static{ s1 = new Stack<Object>(); s2 = new Stack<Object>(); } public static boolean inQueue(Object obj){ return s1.add(obj); } public static Stack<Object> getQueue(){ return s1; } public static Object outQueue(int i){ for(Object ob:s1){ s2.add(ob); } Object res = s2.remove(i); s1.clear(); if(res!=null){ for(Object ob:s2){ s1.add(ob); } } s2.clear(); return res; } public static void main(String[] args) { for(int i=1;i<=10;i++){ TwoStackForQueue.inQueue("test"+i); } Stack tem = TwoStackForQueue.getQueue(); System.out.println(tem); for(int i=TwoStackForQueue.getQueue().size()-1;i>=0;i--){ System.out.println(TwoStackForQueue.getQueue().size()); TwoStackForQueue.outQueue(i); Stack tem2 = TwoStackForQueue.getQueue(); System.out.println(tem); } } }
参考资料:
http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树