从一个队列中取出一个元素再放回去同时保持原来的顺序,不申请非必需的空间存储队列中的元素
来源:互联网 发布:mac草莓红试色cockney 编辑:程序博客网 时间:2024/05/16 05:34
今天在写归并两个有序队列的时候突然想到一件很有意思的事,就是在不申请非必需内存的情况怎么从一个队列中取出一个元素使用,使用完之后放回原来的队列同时保持队列原来的顺序,按我原来的思路就是申请额外的数组或者队列存原先队列中的元素,再按原先的顺序放回去保证原队列的顺序,其实完全不需要这样做
归并两个队列的代码: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() + " ");}}}
0 0
- 从一个队列中取出一个元素再放回去同时保持原来的顺序,不申请非必需的空间存储队列中的元素
- 使用一个辅助的队列和非数组变量设计一个算法以使队列中的元素有序
- 给定一个数组nums,写一个函数将所有的值移动0到最后,同时保持非零元素的相对顺序不变
- 使用两个辅助的队列和非数组变量设计一个算法以使队列中的元素有序
- 队列的顺序存储结构(出队元素时不移动元素,只改变队头元素的位置)
- 顺序栈S中有2n个元素,从栈顶到栈底的元素依次为a2n、a2n-1、…、a1。试设计一个算法:通过一个循环队列重新排列该栈中的元素,使得从栈顶到栈底的元素先偶数,后奇数
- 4-4 Shift Down如何从堆中取出一个元素(对应优先队列中出队这个操作)
- <顺序表>从一个无序顺序表(也可以有序)中删除重复的元素,并使剩余元素间的相对次序保持不变
- 一个简单好用的不加锁队列,用于单线程单次读取队列元素
- 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,求这个队列中从队列投到队列尾的元素个数(包含队列头、队列尾)。
- 将栈S1中的元素复制到栈s2中,并保持顺序不变,使用额外的一个栈
- 从一个HashMap中把一个value为Set类型的元素取出来,然后add添加一个元素,Map也有新添加的元素了
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- x264编码指南——码率控制
- x264参数 中文说明
- Android ColorStateList使用的坑:透明度的问题
- x264 参数详解【很强大、很细致,不再为不懂啥意思很烦恼】
- 用mysql表分区来优化大数据量的表
- 从一个队列中取出一个元素再放回去同时保持原来的顺序,不申请非必需的空间存储队列中的元素
- 人生不如意十之八九
- 汇总内表数据:at end of方法和collect方法
- LeetCode 016 3Sum Closest
- 理论加实践,谈谈我对memcached的学习感悟!
- PHP Warning之max_input_vars
- 【转】CSS FLOAT 学习笔记
- I/O文件流之二
- 大数据圈 15个新技术