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

用栈实现队列

题目:

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

实现 MyQueue 类:

void push(int x) 将元素 x 推到队列的末尾
int pop() 从队列的开头移除并返回元素
int peek() 返回队列开头的元素
boolean empty() 如果队列为空,返回 true ;否则,返回 false

力扣:

思路:

代码:

class MyQueue {
    Stack<Integer> s1;
    Stack<Integer> s2;

    public MyQueue() {
        s1=new Stack<>();
        s2=new Stack<>();
    }
    
    public void push(int x) {
        s1.push(x);
    }
    
    public int pop() {
        if(empty()){
            return -1;
        }
        if(s2.isEmpty()){
            while(s1.size()>0){
                s2.push(s1.pop());
            }
        }
        return s2.pop();
    }
    
    public int peek() {
        if(empty()){
            return -1;
        }
        if(s2.isEmpty()){
            while(s1.size()>0){
                s2.push(s1.pop());
            }
        }
        return s2.peek();
    }
    
    public boolean empty() {
        return s1.isEmpty()&&s2.isEmpty();
    }
}

 

运行结果:

相关文章:

  • 网站建设模板下载关键词优化的技巧
  • 属于网络营销站点推广的是网站搭建一般要多少钱
  • 网站设计学习机构比百度好用的搜索软件
  • 域名网站可以做多个品牌产品吗免费推广神器
  • 微信公众号做电影网站要域名吗山东潍坊疫情最新消息
  • 重庆企业网站推广费用网络优化工程师主要做什么
  • android audiorecord
  • PowerBI累计分析
  • Agent 开发 笔记
  • 本地项目HTTPS访问问题解决方案
  • 【后端开发】Maven
  • LeetCode热题100记录-【二分查找】
  • 单片机软件设计文档模板
  • skynet.call使用详解
  • kafka 的存储文件结构
  • fpga系列 HDL:跨时钟域同步 4-phase handshake(四相握手通信协议,请求-确认机制)浅释与代码实现
  • Boost库搜索引擎项目(版本1)
  • Nodejs回调函数
  • 使用uglifyjs对静态引入的js文件进行压缩
  • 网络安全小知识课堂(十三)
  • css专题1-----给div盒子的边框添加阴影
  • 地质科研智能革命:当大语言模型“扎根”地质现场、大语言模型本地化部署与AI智能体协同创新实践
  • 项目管理中客户拒绝签字验收?如何处理和预防
  • ModelScope能干什么?
  • Java Comparable 接口详解
  • 在Windows搭建gRPC C++开发环境