142.栈和队列:用栈实现队列(力扣)

题目描述

代码解决

class MyQueue {
public:
    stack<int> stIn;  // 输入栈,用于push操作
    stack<int> stOut; // 输出栈,用于pop和peek操作

    MyQueue() {

    }
    
    void push(int x) {
        stIn.push(x); // 将元素压入输入栈
    }
    
    int pop() {
        // 如果输出栈为空,则将输入栈的元素转移到输出栈
        if(stOut.empty())
        {
            while(!stIn.empty())
            {
                stOut.push(stIn.top()); // 将输入栈的顶部元素压入输出栈
                stIn.pop(); // 弹出输入栈的顶部元素
            }
        }
        int result=stOut.top(); // 取输出栈的顶部元素
        stOut.pop(); // 弹出输出栈的顶部元素
        return result; // 返回弹出的元素
    }
    
    int peek() {
        // 如果输出栈为空,则将输入栈的元素转移到输出栈
        if(stOut.empty())
        {
            while(!stIn.empty())
            {
                stOut.push(stIn.top()); // 将输入栈的顶部元素压入输出栈
                stIn.pop(); // 弹出输入栈的顶部元素
            }
        }
        return stOut.top(); // 返回输出栈的顶部元素(不弹出)
    }
    
    bool empty() {
        return stIn.empty() && stOut.empty(); // 判断输入栈和输出栈是否都为空
    }
};
  1. MyQueue有两个私有成员变量:stInstOut,分别用于存储入队和出队的元素。

  2. 构造函数MyQueue()没有参数,它只是初始化了两个栈。

  3. push(int x)方法用于将元素x入队。它将元素x压入stIn栈。

  4. pop()方法用于出队,并返回队首元素。如果stOut栈为空,说明队列中没有元素可以出队,因此需要将stIn栈中的元素全部移到stOut栈中。这可以通过一个循环来实现,每次将stIn栈的顶部元素移到stOut栈中,然后出栈。最后,返回stOut栈的顶部元素。

  5. peek()方法用于查看队首元素,但不将其出队。它与pop()方法类似,但是不将队首元素出队,而是返回它。

  6. empty()方法用于判断队列是否为空。如果stIn栈和stOut栈都为空,则返回true;否则返回false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634365.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

16. Elasticsearch面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 什么是Elasticsearch? Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式&#xff0c;多租户能力的全文搜索引擎。 Elasticsearch是用Java开发的&#xff0c;根据Apache许可条款作为开源发布…

Docker镜像源自动测试镜像速度,并选择速度最快的镜像

国内执行如下代码 bash <(curl -sSL https://gitee.com/xjxjin/scripts/raw/main/check_docker_registry.sh)国外执行如下代码 bash <(curl -sSL https://github.com/xjxjin/scripts/raw/main/check_docker_registry.sh)如果有老铁有比较不错的镜像源&#xff0c;可以提…

局域网传文件怎么操作?轻松实现文件共享!

在现代的办公和生活中&#xff0c;局域网传文件已经成为一种非常常见和方便的方式&#xff0c;可以快速、安全地在局域网内进行文件传输。无需依赖互联网&#xff0c;局域网传文件可以帮助团队成员之间共享文件、备份数据、进行协作等。本文将介绍三种常见的方法&#xff0c;帮…

word-形状绘制、smartart、visio

一、人员架构图绘制 小技巧&#xff1a; 1、ctrlshift水平复制 2、点击图形&#xff0c;右键设置为默认形状 3、插入-形状-右键-锁定绘图模式&#xff0c;按esc退出状态 4、插入-形状-新建绘图画布&#xff0c;代替组合问题 画布中存在锚点&#xff0c;便于直线连接 二、s…

掌握一个面试小心机,就业离你只差这一步!

马上进6月份&#xff0c;大家是已经在工作岗位上了&#xff0c;还是正在面试呀&#xff01;不知道大家在面试过程中有没有遇到这样的问题&#xff0c;面试完几家公司之后进行总结&#xff0c;还是不知道自己为什么被pass掉&#xff0c;今天小编带大家搞清测试岗位面试的底层逻辑…

Centos7.9安装openldap和phpldapadmin

文章目录 一、背景二、正文2.1 安装openldap2.2 修改openldap配置2.3 安装phpldapadmin2.4 登录phpldapadmin界面 三、安装途中可能碰到的报错错误场景1&#xff1a;执行步骤“安装openldap”途中碰到的错误&#xff0c;即执行命令&#xff1a;systemctl start slapd报错错误场…

【Day7:JAVA面向对象的初级使用】

目录 1、类和对象1.1 类的介绍1.2 类和对象的关系1.3 类的组成 2、对象内存图2.1 单个对象内存图2.2 两个对象内存图2.3 两个引用指向相同内存图 3、成员变量和局部变量3.1 成员变量和局部变量的区别 4、this关键字4.1 this可以解决的问题4.2 this介绍4.3 this内存图4.4 this总…

Python 新手最容易踩的坑

Python新手最容易踩的坑 缩进错误忘记引入模块使用未定义的变量不理解变量作用域字符串格式化错误乱用关键字多余的符号本期图书推荐&#xff1a;Python算法小讲堂---39个算法案例带你玩转Python内容简介获取方式 在学习 Python 的过程中&#xff0c;新手往往会遇到一些常见的陷…

【四、性能测试】Linux stress 压力模拟测试工具

在做 CPU 问题解析之前&#xff0c;需要先了解一下压力模拟工具&#xff0c;可以将 CPU、MEM、IO 等进行压力模拟&#xff0c;可以在模拟压力的过程中进行问题解析 一、STRESS 模拟对CPU、Memory、IO、磁盘进行压力测试。可以使用 stress 工具&#xff0c;它是专门针对 linux…

部署yum仓库及NFS共享

yum概述 yum 1&#xff09;基于RPM包构建的软件更新机制 2&#xff09;可以自动解决依赖关系 3&#xff09;所有软件包由集中的YUM软件仓库提供 准备安装源 一键安装软件包的工具&#xff1a; RHEL、CentOS yum dnf Ubuntu、Debian apt apt-get 好处&#xff1a;…

GitKraken克隆Git仓库

克隆Git仓库 修改本地仓库 在此新增了一个test.txt文件 GitKraken提醒有一处改变 暂存&#xff08;Stage&#xff09;该文件&#xff0c;添加描述后提交修改&#xff1a; 修改成功&#xff1a;

(一)vForm 动态表单设计器之使用

系列文章目录 &#xff08;一&#xff09;vForm 动态表单设计器之使用 文章目录 前言 一、VForm是什么&#xff1f; 二、使用步骤 1.引入库 2.使用VFormDesigner组件 3.使用VFormRender组件 4.持久化表单设计 总结 前言 前段时间在研究Activiti工作流引擎&#xff0c;结合业务…

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现&#xff1a; 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性&#xff0c;并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…

关于基础的流量分析(1)

1.对于流量分析基本认识 1&#xff09;简介&#xff1a;网络流量分析是指捕捉网络中流动的数据包&#xff0c;并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 2&#xff09;在我们平时的考核和CTF比赛中&#xff0c;基本每次都有…

电脑实时监控软件哪个好?这三款电脑监控软件都是万里挑一

网络安全事故的频发为我们敲响了警钟&#xff0c;企业必须普及电脑监控软件才能有效防止数据泄密和懒散的工作状态&#xff0c;在这里为你盘点三款万里挑一的电脑实时监控软件。 域智盾软件&#xff1a; 特点&#xff1a;域智盾软件是一款功能全面且强大的电脑实时监控软件。它…

利用神经网络学习语言(六)——总结与常见面试问题

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 文章列表&#xff1a; 利用神经网络学习语言&#xff08;一&#xff09;——自然语言处理的基本要素利用神经网络学习语言&…

力扣刷题---283.移动0【简单】

题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums …

2024年AI发展的四大趋势

近日&#xff0c;OpenAI发布首个视频生成模型“Sora”——通过接收文本指令&#xff0c;即可生成60秒短视频。一年前&#xff0c;同样是OpenAI发布的语言模型ChatGPT&#xff0c;让文本创作变得易如反掌。 在2023年&#xff0c;随着一系列AIGC的相继问世&#xff0c;我们看到A…

企业应考虑的优秀云安全措施

作为云客户&#xff0c;企业有责任确保正确使用他们提供的工具来保证数据和应用程序的安全。让德迅云安全来跟大家一起研究一些典型企业应该考虑的优秀云安全措施。 在数据安全和隐私方面&#xff0c;企业是否在努力跟上疫情的发展?企业不是一个人。就像多年以前&#xff0c;C…

【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;TCP&#xff08;2&#xff09;IP广播&#xff08;3&#xff09;ARP协议&#xff08;4&#xff09;IP路由器&#xff08;5&#xff09;MAC协议&#xff08;6&#xff09;三次握手&#xff08;7&#xff09;TCP/IP&#xf…