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

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

目录

LeetCode-225题


LeetCode-225题

使用队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)

实现 MyStack 类:

  • void push(int x) 将元素 x 压入栈顶
  • int pop() 移除并返回栈顶元素
  • int top() 返回栈顶元素
  • boolean empty() 如果栈是空的,返回 true ;否则,返回 false
class MyStack {//内部使用的是一个队列private final Queue<Integer> queue;public MyStack() {queue = new LinkedList<>();}// 入栈:直接将元素添加到队列中public void push(int x) {queue.offer(x);}// 出栈:将队列中除了最后一个元素,其它元素先出队再进队public int pop() {int size = queue.size();for (int i = 0; i < size - 1; i++) {queue.offer(queue.poll());}// 此时出队的是最后进入的元素,保证后进先出的特点return queue.poll();}// 查看栈顶元素public int top() {int size = queue.size();for (int i = 0; i < size - 1; i++) {queue.offer(queue.poll());}Integer result = queue.poll();queue.offer(result);// 最后添加的元素为栈顶元素return result;}// 判空public boolean empty() {return queue.isEmpty();}
}

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

相关文章:

  • 系统重启过程和启动目标
  • Note3: CNN(卷积神经网络)
  • java每日精进 7.29【框架数据权限详解】
  • 远程Qt Creator中文输入解决方案
  • day064-kodbox接入对象存储与配置负载均衡
  • linux命令tail的实际应用
  • 网络数据传输与NAT技术的工作原理
  • 社区老人健康信息管理系统|基于springboot社区老人健康信息管理系统设计与实现(源码+数据库+文档)
  • SSO CAS+Shiro+springmvc单点登录解决方案
  • 符号计算与算法实践|使用Maple教授​​群论​​和​​图论​​课程
  • 【 MySQL集群架构与实践1】使用Docker实现简单主从复制
  • uni-app x开发避坑指南:拯救被卡顿的UI线程!
  • 【CF】Day114——杂题 (贪心 + 图论 | LCM + 贪心 | 最大最小子序列 + 图论)
  • 图论:Bellman_ford算法
  • docker设置iptables=false后容器内部无法互相访问
  • vue3组件通信的几种方法,详解
  • 工业补贴携手华为云,重塑汽车零部件供应链管理新趋势
  • B 站搜一搜关键词优化:精准触达用户的流量密码
  • 51c大模型~合集161
  • SQL注入SQLi-LABS 靶场less26-30详细通关攻略
  • Elasticsearch 深度分页问题与 `search_after` 解决方案
  • 从centos更换至ubuntu的安装、配置、操作记录
  • cpolar 内网穿透 ubuntu 使用石
  • 知识点梳理
  • 基于三台主机搭建 Web 服务环境:Nginx、NFS 与 DNS 配置全流程
  • Python实用代码示例大全
  • tcp通讯学习数据传输
  • Effective C++ 条款10:令operator=返回一个reference to *this
  • 渗透测试与漏洞扫描有什么区别?
  • napping靶机教程(超详细讲解)