Java中队列的使用
Java中队列的使用
- 注意事项
- curd
- create
- add(obj): 增加一个元素,如果队列已满,则抛出异常
- offer(obj): 添加一个元素并返回true,如果队列已满,则返回false
- update
- set(index, obj)
- retrieve
- element(): 返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常
- peek(): 返回队列头部的元素,如果队列为空,则返回null
- delete
- remove(): 移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常
- poll(): 移除并返问队列头部的元素,如果队列为空,则返回null
- create
- 样例
- 内部实现
- 内部类 Node
- 双向链表,有头尾指针
- 查找的时候会根据 index 决定用 head 往后还是用 last 往前
注意事项
java.util.Queue
是一个抽象类,不能实例化java.util.LinkedList
实现了Queue
,可以当作队列来使用
样例
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) { // write code here ArrayList<ArrayList<Integer>> res = new ArrayList<>(); if (root == null) return res; LinkedList<TreeNode> nodes = new LinkedList<>(); nodes.add(root); while (!nodes.isEmpty()) { int n = nodes.size(); ArrayList<Integer> layer = new ArrayList<>(n); for (int i = 0; i < n; i++) { TreeNode head = nodes.poll(); layer.add(head.val); if (head.left != null) nodes.add(head.left); if (head.right != null) nodes.add(head.right); } res.add(layer); } return res; } }
内部实现
参考
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/15923720.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本