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

栈算法之【用栈实现队列】

目录

LeetCode-232题


LeetCode-232题

仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty)

实现MyQueue类:

  • void push(int x) 将元素 x 推到队列的末尾
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false
class MyQueue {// 维护两个栈private final LinkedList<Integer> stack1;private final LinkedList<Integer> stack2;public MyQueue() {stack1 = new LinkedList<>();stack2 = new LinkedList<>();}// 添加元素public void push(int x) {// 直接将元素添加到stack1中stack1.push(x);}// 删除元素public int pop() {// 从stack2中删除栈顶元素,如果stack2为空,则先将stack1中所有元素添加到stack2中transfer();return stack2.pop();}private void transfer() {if (stack2.isEmpty()) {while (!stack1.isEmpty()) {stack2.push(stack1.pop());}}}// 查看元素public int peek() {transfer();return stack2.peek();}// 是否为空集合public boolean empty() {return stack1.isEmpty() && stack2.isEmpty();}
}

http://www.dtcms.com/a/303416.html

相关文章:

  • 凸优化:凸函数的一些常用性质
  • OpenLayers 综合案例-量测工具
  • 【Zustand】从复杂到简洁:Zustand 状态管理简化实战指南
  • 图解系统的学习笔记--硬件结构
  • 告别繁琐 Mapper!Stream-Query 正式入驻 GitCode 平台
  • GPFS文件系统更换磁盘
  • 企业级JWT验证最佳方案:StringUtils.hasText()
  • AD中放置过孔阵列
  • Python 异常 (Exception) 深度解析
  • 如何获取我当前的IP地址
  • 掌握 ArkTS 复杂数据绑定:从双向输入到多组件状态同步
  • AWS MemoryDB 可观测最佳实践
  • Python Pandas.merge_ordered函数解析与实战教程
  • 全球首个1米高精度特大城市开放空间数据集(Tif)
  • 力扣刷题977——有序数组的平方
  • 热门JavaScript库“is“等软件包遭npm供应链攻击植入后门
  • “菜鸟的java代码日记“ DAY3——跳跃游戏(中等)
  • DBAPI的SQL实现模糊查询的3种方案
  • [论文阅读] 人工智能 | 机器学习工作流的“救星”:数据虚拟化服务如何解决数据管理难题?
  • 数据结构面经
  • 《中国棒球》cba球队有哪些球队·棒球1号位
  • MySQL 查询重复数据的方式总结
  • 历史版本vscode的下载地址
  • 从黑客松出发,AI + Web3 项目怎么打磨成产品?
  • vue2中实现leader-line-vue连线文章对应字符
  • 事务实现的底层原理
  • SwinTransformer改进(14):集成MLCA注意力机制的Swin Transformer模型
  • 机器学习基础-numpy
  • 【JavaScript】const 定义的对象禁止修改内部属性
  • USRP X410 X440 5G及未来通信技术的非地面网络(NTN)