两个队列实现一个栈思路c语言_栈和队列的主要区别

两个队列实现一个栈思路c语言_栈和队列的主要区别用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail”,“ap

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

示例 1:

输入:
[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[3],[],[]]
输出:[null,null,3,-1]
示例 2:

输入:
[“CQueue”,“deleteHead”,“appendTail”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]
提示:

1 <= values <= 10000
最多会对 appendTail、deleteHead 进行 10000 次调用
题解
两个栈,一个栈插入,另一个栈输出,当输出的栈空的时候,从输入的栈结数据

class CQueue { 
   
public:
    stack<int>s1;
    stack<int>s2;
    CQueue() { 
   
    }
    
    void appendTail(int value) { 
   
        s1.push(value);
    }
    
    int deleteHead() { 
   
        if(s2.empty()){ 
   
            while(!s1.empty()){ 
   
                s2.push(s1.top());
                s1.pop();
            }
        }
        if(!s2.empty()){ 
   
            int t = s2.top();
            s2.pop();
            return t;
        }
        return -1;
    }
};

/** * Your CQueue object will be instantiated and called as such: * CQueue* obj = new CQueue(); * obj->appendTail(value); * int param_2 = obj->deleteHead(); */
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168644.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 微信小程序 宠物论坛1[通俗易懂]

    微信小程序 宠物论坛1[通俗易懂]微信小程序宠物论坛(1)一个简单的论坛包括以下几个方面:登录模块发帖模块首页模块帖子详情模块搜索模块个人主页模块下面将从这6个方面介绍如何用微信小程序开发一个简单的论坛。1、登录模块先看界面图打开小程序首先看到这个界面,之后我们点击头像便完成授权登录。JS部分//index.js//获取应用实例constapp=getApp()constdb=wx.cloud.database()Page({data:{motto:’欢迎来到宠物论坛

  • java switch用法_Java switch语句

    java switch用法_Java switch语句Javaswitch语句用于从多个条件执行一个语句。它就像if-else-if语句一样。语法:switch(expression){casevalue1://codetobeexecuted;break;//optionalcasevalue2://codetobeexecuted;break;//optional……default://codetobee…

  • 手机号码归属地最新数据库2015年12月(附带采集更新程序)[通俗易懂]

    手机号码归属地最新数据库2015年12月(附带采集更新程序)[通俗易懂]手机号码归属地最新数据库2015年12月(附带采集更新程序)转:http://www.duanmu.org/log/mobile/昨天发现数据库的手机号归属地判断不准确,数据库该更新了,百度了下好像没有什么共享好的。以前是去淘宝上买的数据库,每次更新还得加钱,干脆自己做个算了,共享给大家。使用说明:1.单独号段的更新,请在手机号段里输入开始号

  • android调用相册和摄像头_js调用手机截屏保存到相册

    android调用相册和摄像头_js调用手机截屏保存到相册Android调用系统的拍照,打开相册功能1添加权限:uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>uses-permissionandroid:name="android.permission.CAMERA"/>2设置标志(回传码)//

  • Python的random函数用法详解[通俗易懂]

    Python的random函数用法详解[通俗易懂]在random模块下提供了如下常用函数:random.seed(a=None,version=2):指定种子来初始化伪随机数生成器。random.randrange(start,stop[,stop]):返回从start开始到stop结束、步长为step的随机数。其实就相当于choice(range(start,stop,step))的效果,只不过实际底层并不生成区间对象。random.randint(a,b):生成一个范围为a≤N≤b的随机数。其等同于ra

  • c语言程序如何防止盗用,如何用C语言程序盗取QQ密码

    c语言程序如何防止盗用,如何用C语言程序盗取QQ密码描述一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码!通过安装钩子来监视QQ登陆界面就是获得密码的方法,在安装前得先找到登陆窗口的句柄,当钩子安装后,记录键盘,当用户“回车”或是点了“登陆”就可以开始处理密码了!我准备分为四…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号