逆序栈(递归⚠)

2023-11-05

给你一个栈,请逆序这个栈;
不能申请额外的数据结构,只能使用递归求解;

题解:
这道题难点就在于无法申请额外数据结构,可以用两个递归函数实现;
第一个递归函数GetBottom()主要用途是将栈底的数据出栈,并返回该数据的值;
所以我们可以使用递归让栈内的数据依次出栈,直到最后一个数据出栈后栈为空返回该数据的值,递归开始往回走,让之前出栈的值再依次进栈。
第二个递归函数Reverse()就是将栈逆序了;
这就需要我们开始调用GetBottom()函数将栈底数据先出栈,然后依次出栈,直到栈为空,此时最后一个出栈的一定是栈顶数据,这时递归就要往回走,我们只需要将出栈的数据依次再压入栈中即可,此时先入栈的是最后一个出栈的栈顶,最后一个入栈的就是之前的栈底,这样就完成了逆序;

ps:这个递归代码是很难想到的,也是非常非常非常巧妙的,不知道我什么时候可以写出这样的代码的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

逆序栈(递归⚠) 的相关文章

  • STM32——CAN控制器原理与配置

    一 CAN控制器简介 STM32自带了基本扩展CAN外设 又称bxCAN bxCAN的特点如下 1 支持CAN协议2 0A和2 0B主动模式 2 波特率最高达1Mbps 3 支持时间触发通信 4 具有3个发送邮箱 5 具有3级深度的2个接收
  • Java程序员值得探索的五种新编程语言,Python是首选?

    我们程序员就要常换常新 老用一种语言是会厌倦的 学什么语言能我们精进不已 一起来看本文 作为程序员 要想探索新事物 学习新的编程语言会为自己解决问题提供更多的视角 那么 Java开发人员应该探索哪些新语言 学习Java 8 9 中的函数式和

随机推荐

  • MQTT发布订阅程序完整代码

    工具类 包含有发布者方法和订阅者方法 package cn com bonc wholeCode import org eclipse paho client mqttv3 import org eclipse paho client mq
  • 【整理四】

    1 Vue组件通信 pops emit 父组件通过props向子组件传递数据 子组件通过 emit和父组件通信 Ref refs ref这个属性用在子组件上 指向子组件的实例 可以通过实例访问组件的数据和方法 EventBus事件总线 em
  • 基于双向长短期记忆网络(BILSTM)数据回归预测,多变量BILSTM回归预测,MATLAB代码。评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码质量极高,方便学习和替换数据。

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 restoredefaultpath tic 导入数据 P train xlsread data traini
  • 初识Java

    目录 一 Java语言概述 1 Java是什么 2 Java语言发展简史 二 第一个Java程序 1 简单的 HelloWorld 2 运行Java程序 三 注释 四 标识符 五 关键字 一 Java语言概述 1 Java是什么 是一种编程
  • UnityRPG游戏中的球形检测范围

    先上图 一些RPG游戏中 可以用这种方法检测玩家 我个人感觉这个方法比直接给敌人加触发器 要来得方便一些 注意 脚本是根据tag标签来检测玩家的 请勿忘记给玩家添加标签 using UnityEngine
  • NGINX服务器的配置文件是,Nginx conf配置文件结构

    Nginx conf配置文件结构 Nginx默认的服务器配置文件存放于conf目录中 主配置文件名为conf 在Nginx服务器的配置文件中 注释是以 标志为开头 如 这里是注释信息 nginx服务器会忽略此行 nginx conf配置文件
  • RabbitMQ web页面连接报错could not connect to server since

    RabbitMQ web页面连接报错could not connect to server since Error could not connect to server since 2021 08 23 23 37 33 Will ret
  • 腾讯难成算法帝国

    腾讯难成算法帝国 https mp weixin qq com s ceVUyuVeYtCPOCSgMNAStg 本文从一个全新的角度 数据及算法 对腾讯这家公司抽丝剥茧 进行了全面的分析 作者认为 如果腾讯能够重视大数据并极大提升它的算法
  • 设置可执行程序的名称

    argc 命令行参数的个数 argv 是个数组 每个数组元素都是指向一个字符串的 char 里边存储的内容是所有命令行参数 argv 内存之后接着就是连续的环境变量参数信息内存 里边存储的内容是可执行程序执行时有关的所有环境变量参数信息 可
  • 立创梁山派GD32F470ZGT6--硬件SPI+DMA的快速刷屏

    准备 屏幕 使用SPI接口的1 69寸240x280TFT彩屏 主控 使用立创 梁山派GD32F470ZGT6 屏幕与主控的连接 使用硬件SPI DMA的方式刷屏 一般我们拿到一个屏幕首先需要移植厂商提供的官方代码进行亮屏测试 这里我们就不
  • 阿里云存储图片x-oss-process常用方法处理

    图片缩放至80 转换为webp格式 质量为原来的80 转换后尺寸为480px 320px x oss process image resize p 80 format webp quality q 80 宽度调整为180 通常只调整至指定宽
  • 【考研先知】

    官网 中国研究生招生信息网https yz chsi com cn 考试流程 学硕专硕 AB区 地区 A区 北京 天津 上海 江苏 浙江 福建 山东 河南 湖北 湖南 广东 河北 山西 辽宁 吉林 黑龙江 安徽 江西 重庆 四川 陕西21个
  • 在H+框架下的一个给iframe 的body 添加事件。

    需求 在后台框架下面点击F5的时候只刷新子页面 不刷新主站点 菜单表来自同域名下的不同的站点 里面涉及到跨域问题 通过document domain可解决 想法在点击F5的时候阻止父页面的刷新 并获取当前iframe的src 重新刷新即可
  • 分子图形学(转载自维基,英文)

    分子图形学 来自http en wikipedia org wiki Molecular graphics Molecular graphics MG is the discipline and philosophy of studying
  • 单片机开发---基于ESP32-CAM的人脸识别应用

    背景 学习了一下OpenCV 熟悉了一点基础概念 就寻找了一下单片机上能否支持人脸识别 用来做一些小玩意 结果还真发现了一个模块叫ESP32 CAM ESP32 CAM算得上是一款最便宜的支持人脸识别的单片机开发板了 性能算是单片机里相当不
  • python快速编程入门-期末版一版课后习题

    不喜勿喷 python书中课后习题 黑马程序员 第一章 python概述 1 编程实现打印 print print print 第二章 python基础语法 2 由三角形两直角边求斜边长度 import math a float input
  • 【MATLAB】图像处理相关函数gscale函数

    function g gscale f varargin GSACLE函数实现对输入图像的标度 G GSACLE F full8 将图像标度到 0 255 全范围 默认值 G GSACLE F full16 将图像标度到 0 65535 全
  • iphone如何查看wifi密码_手机连接wifi如何查看密码 手机连接wifi查看密码方法【介绍】...

    随着无线WiFi的普及 一个家庭中只要有一个账号 就能实现多人多台设备上网 节省了不少手机流量的开支 尤其是哪些看追剧 看视频的朋友 如果运用手机流量可能会花不少的资金呢 如果手机上的无线WiFi密码忘记了该怎么办呢 怎么查看手机无线WiF
  • C# Modbus通信从入门到精通(11)——调试软件Modbus Slave和Modbus Poll的使用

    前言 我们在开发Modbus程序的时候 会需要测试以下我们写的Modbus程序有没有问题 这时候就需要使用到Modbus Slave和Modbus Poll这两个软件 Modbus Slave是模拟Modbus从站 Modbus Poll是
  • 逆序栈(递归⚠)

    给你一个栈 请逆序这个栈 不能申请额外的数据结构 只能使用递归求解 题解 这道题难点就在于无法申请额外数据结构 可以用两个递归函数实现 第一个递归函数GetBottom 主要用途是将栈底的数据出栈 并返回该数据的值 所以我们可以使用递归让栈