题目

队列实现栈

解析

首先准备两个队列queue1、queue2

数据[1,2,3,4,5]依次入队queue1,之后把[1,2,3,4]依次出兑在入队到queue2,[5]留在queue1中

此时[5]在出队可实现"出栈"操作,[5]出队都queue2中的数据依次返回queue1中,新加的元素此时接在其后即可

代码

public static class TwoQueueStack<T> {public Queue<T> queue;public Queue<T> help;public TwoQueueStack() {queue = new LinkedList<>();help = new LinkedList<>();}public void push(T value) {queue.offer(value);}public T poll() {while (queue.size() > 1) {help.offer(queue.poll());}T ans = queue.poll();Queue<T> tmp = queue;queue = help;help = tmp;return ans;}public T peek() {while (queue.size() > 1) {help.offer(queue.poll());}T ans = queue.poll();help.offer(ans);Queue<T> tmp = queue;queue = help;help = tmp;return ans;}public boolean isEmpty() {return queue.isEmpty();}
}

有苦有乐的算法 --- 使用队列结构实现栈结构相关推荐

  1. 有苦有乐的算法 --- 使用栈结构实现队列结构

    题目 栈实现队列 解析 两个栈,stack1,stack2 假如一组元素为[1,2,3,4,5], 先依次入stack1 在将stack1的所有数据出栈,在入stack2 注:stack1里的的数据一 ...

  2. 有苦有乐的算法 --- 基数排序

    题目 一个无序数组,使用基数排序的方式从小到大进行排序 解析 给定一个数组: 首先准备一个"桶"(每个桶是一个队列): 从左到右遍历数组,每个元素的个位数是多少,就进入几号桶中: ...

  3. 有苦有乐的算法 --- 二叉树的按层遍历

    题目 给定一个二叉树,进行按层遍历. 例: 解析 给定一颗二叉树: 首先准备一个队列,让头节点入队: 节点出队并打印,同时此节点的左节点2入队,右节点3在入队: 2出队,2的左节点4入队,2的右节点5 ...

  4. 有苦有乐的算法 --- 图的宽度优先遍历

    题目 给定一个图,使用队列对其进行宽度优先遍历 代码 public static void bfs(Node start) {if (start == null) {return;}Queue< ...

  5. 有苦有乐的算法 --- 有序数组中的元素存在问题、最左元素问题和无序数组局部最小问题

    一个有序数组,判断是否含有一个元素 解析: 给定一个数组 如果需要判断是否存在的元素为3. 首先找到数组的中间元素: 如果此元素为3,结束: 如果不是,此元素与3比较,此元素如果大于3,在从此元素左边 ...

  6. 有苦有乐的算法 --- 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两种数

    题目 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两组数 例: [2,4,3,2,5,4] ⇒ [3,5] [1,4,6,3,7,8,3,2,1,2,6,6,7,8] ⇒ [6,4] ...

  7. 有苦有乐的算法 --- 可能有环也可能无环的两个单链表,判断这两个链表是否相交,如果相交返回相交的第一个节点

    题目 可能有环也可能无环的两个单链表,判断这两个链表是否相交,如果相交返回相交的第一个节点. 解析 第一步,判断链表是有环链表还是无环链表: 如果一个单链表无环,它一定有一个指向null的尾结点: 如 ...

  8. 有苦有乐的算法 --- 获取二叉树的最大宽度

    题目 一颗二叉树,求其最大宽度. 例: 解析 按层遍历二叉树: 在遍历时,使用用4个变量来记录信息: Node curEnd = null; // 当前层,最右节点是谁 Node nextEnd = ...

  9. 有苦有乐的算法 --- 随机快排

    题目 使用随机快排对给定数组进行从小到大排序 [5,3,2,1,5] ⇒ [1,2,3,5,5] 解析 给定一个数组 1.在数组中找出一个数作为基准(最右侧的数2):变量l记录数组头位置,变量r记录尾 ...

最新文章

  1. 在Makefile中的 .PHONY 是做什么的?
  2. Android Studio:missing feature Watch
  3. uk visa application(bachelor at uk,physically at home,graduate studies uk)
  4. 大学计算机应用技术基础,大学计算机应用技术基础实践教程(Windows7+Office2010/21世纪高等学校计算机规划教材...
  5. python数据科学讲解_数据科学的概念-Python数据科学技术详解与商业项目实战精讲 - Python学习网...
  6. C语言入门题-计算指数 (15分)
  7. P3389 【模板】高斯消元法
  8. 2020年8月小程序互联网发展研究报告
  9. 对AI的未来以及优势的一些看法
  10. InfoPath参与流程的开发[转帖]
  11. iOS使用多线程提高数据并发访问 之三
  12. java 8 64位官方下载_Java 8下载 Java 8.0U181官方正式版(32位/64位) 下载-脚本之家
  13. android开机动画 制作工具,android开机动画制作
  14. 微信小程序插件wxParse的使用
  15. 使用adb工具修改android分辨率
  16. uni-app知识点整理(1)- uni-app简介、环境搭建、项目创建、项目目录文件
  17. 利用pandas 读取pdf中的表格文件
  18. AI魔幻行为大赏:细数机器视觉的9大应用场景
  19. 豆瓣电影TOP250和书籍TOP250爬虫
  20. html 字幕文件怎么打开,srt文件怎么打开

热门文章

  1. 【博客418】cpu平坦模型和分段模型
  2. 我用Python分析5W+视频数据,看看谁才是最咕UP主
  3. 毕达哥拉斯素数的王伟猜想
  4. 人工智能无法替代的几个职业
  5. PHP多文字,二维码(动态、非动态)生成海报方式
  6. 洛谷B2144 阿克曼(Ackmann)函数
  7. python中getattr()函数用法详解
  8. 带来新奇应用的HI! MORFEI 智能家居开发大赛有科大讯飞的什么“秘密”?
  9. 儒猿秒杀季!互联网大厂的企业级风控系统项目实战
  10. Qt之JSON教程-实战篇