当前位置: 首页 > news >正文

java 栈(Stack) 和队列(Queue)

栈有着后进先出的特点,只允许在一端进行删除和添加,在操作的那一边被称为栈顶,另一边成为栈底
方法介绍
Stack() 创建个空栈
E pop() 弹出栈顶元素
E push() 放入元素
E peek() 获取栈顶元素
boolean empty() 检测栈是否为空
int size() 获取存入的元素
栈的模拟实现

点击查看代码
public class MyStack {int[] array;int size;public MyStack(){array = new int[10];}public int push(int val){ensureCapacity();array[size] = val;size++;return val;}public int pop(){return array[size--];}public int peek(){if(array.length == 0){throw new RuntimeException("栈为空");}return array[size - 1];}public boolean isEmpty(){return array.length == size;}private void ensureCapacity(){if(isEmpty()){array = Arrays.copyOf(array,array.length * 2);}}
}
还是很简单的 同样,队列也是很简单的,他和栈不同点在于队列像排队一样,先进先出 本质上说,队列是只有一头只可以删除数据,另一头只可以添加数据 方法介绍 offer(E e) 插入数据 E poll() 删除数据 E peek() 获取头元素 int size() 有效元素个数 boolea isEmpty 查看是否为空 队列的实现
点击查看代码
public class MyQueue {public static class ListNode{int val;ListNode next;ListNode prev;ListNode(int val){this.val = val;}}ListNode first;ListNode last;int size;public void offer(int val){ListNode node = new ListNode(val);if(first == null){first = node;size++;last = node;return;}last.next = node;node.prev = last;size++;last = node;}public int poll(){if (first == null) {throw new RuntimeException("队列为空");}int val = first.val;if(first == last){first = null;last = null;size--;return val;}first.next.prev = null;first = first.next;size--;return val;}public int size(){return size;}public int peek(){if(first == null){throw new RuntimeException("队列为空");}return first.val;}
}
http://www.jsqmd.com/news/651555/

相关文章:

  • LM339实战:5种电压比较器电路设计避坑指南(附NTC测温方案)
  • Vivado时序约束实战:从看懂4种时序路径到写出正确的SDC文件
  • 手把手教你将Claude Code的默认模型换成GLM-4.7或MiniMax M2.1(附完整配置代码)
  • HandheldCompanion:为Windows掌机游戏体验带来革命性提升的控制器兼容方案
  • HDMI/DVI HDCP握手问题解析与解决方案
  • BibTeX参考文献实战指南:从入门到精通各类文献格式
  • 5G网络计费新玩法:除了流量和时长,运营商还能按什么给你算钱?
  • 别再只盯着CPU利用率了!用ARM PMU深入挖掘你的A53/A72芯片真实性能
  • AI食谱推荐落地实战指南(2026医疗级部署白皮书首次解禁)
  • C# Sdcb.OpenVINO.PaddleOCR 离线部署与模型管理实战
  • Charles安卓抓包终极指南:从证书安装到系统级配置
  • Midscene.js:用自然语言驱动全平台UI自动化的AI助手
  • 别再死记硬背了!用Flexbox Froggy游戏通关24关,彻底搞懂justify-content和align-items
  • 数据库如何实现“内明外密”? encryption-at-rest-sql-server-tde SQL Server 大数据群集静态透明数据加密 (TDE) 使用指南
  • 超越Lab Guide:用ICC做物理实现的深层原理剖析,从命令到芯片的思考
  • Matlab文件操作翻车实录:从‘fileID = -1’开始,手把手教你写带异常处理的健壮文件读写代码
  • 【实战干货】电商卖家如何用 OCR 自动识别商品图片文字?效率提升10倍(附完整代码)
  • 网易云音乐下载器终极指南:三步实现完整ID3元数据批量下载
  • 【MATLAB】数据可视化实战:Boxplot与Error Bar的进阶应用技巧
  • 矩阵论核心概念与应用实战解析
  • 技术管理者转型:从IC到TL的关键跨越
  • 036不同的子序列 动态规划
  • EasyFiles批量文件重命名工具(批量文件与目录管理工具)v1.2
  • 【2026实测】OCR识别 API 哪个好?电商场景全面对比(准确率 / 价格 / 速度)
  • 热血江湖私服服务器硬件怎么选?16H32G 50M带宽的驰网裸金属实测与性能调优
  • Word与Excel的无缝桥梁:千峰办公助手数据处理功能的技术实践
  • 用Python+Excel搞定大学物理实验报告:扭摆法测切变模量数据处理全流程
  • 为什么你的AI详情页总被运营打回?SITS2026交付团队亲授:3类语义断层识别法+2个Prompt黄金模板
  • 2026广西自考机构推荐排行榜:Top7深度测评,帮你精准避坑 - 商业科技观察
  • 2026奇点大会AI写作赛道TOP3方案深度拆解:1个开源模型、2套私有化部署架构、3种人机协同SOP(含实时响应延迟压测数据)