从一个队列中取出一个元素再放回去同时保持原来的顺序,不申请非必需的空间存储队列中的元素
2016-05-05 12:17
495 查看
今天在写归并两个有序队列的时候突然想到一件很有意思的事,就是在不申请非必需内存的情况怎么从一个队列中取出一个元素使用,使用完之后放回原来的队列同时保持队列原来的顺序,按我原来的思路就是申请额外的数组或者队列存原先队列中的元素,再按原先的顺序放回去保证原队列的顺序,其实完全不需要这样做
归并两个队列的代码:https://github.com/xiaoyuzdy/Algorithms/blob/master/AlgorithmsTest/src/Num1_2_02/Num_2_02_14.java
下面的代码就是其中比较的部分:
归并两个队列的代码:https://github.com/xiaoyuzdy/Algorithms/blob/master/AlgorithmsTest/src/Num1_2_02/Num_2_02_14.java
下面的代码就是其中比较的部分:
package Num1_2_02; import edu.princeton.cs.algs4.Queue; /* * 一个队列如果取出一个元素后又想放回去同时保证队列的原始顺序 * 不使用辅助内存 * queue: 0 1 2 3 4 * 取出0后又放回去 并保持顺序 * 0 1 2 3 4 */ public class Fun { public static void main(String[] args) { Queue<Integer> queue = new Queue<Integer>(); for (int i = 0; i < 5; i++) { queue.enqueue(i); } Integer t = queue.dequeue(); int count = queue.size(); queue.enqueue(t); while (count-- > 0) { queue.enqueue(queue.dequeue()); } while (!queue.isEmpty()) { System.out.print(queue.dequeue() + " "); } } }
相关文章推荐
- ARC下OC对象和CF对象之间的桥接(bridge)
- django ATOMIC_REQUESTS
- android:ViewPager自动轮播图(简单版)
- 机器学习----SVM(2)从原始问题到对偶问题的转换
- PHP Warning之max_input_vars
- Node.js express NPM start error, Exit Status 8
- Swift-字典
- Python实现HTTP-Basic认证登陆
- 《java入门第一季》之面向对象(继承)
- JAVA邮件发送的简单实现
- 《java入门第一季》之面向对象(继承)
- 第十七章读书笔记
- 【转】CSS FLOAT 学习笔记
- 虚拟键码对照表
- HDU 5303 Delicious Apples (类似背包)
- I/O文件流之二
- NoSql数据库 设计上面的一些心得
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(六)之 好友申请、同意、拒绝
- 理论加实践,谈谈我对memcached的学习感悟!
- 单例模式