• 如何仅用递归函数和栈操作逆序一个栈
  • 题目:
  • 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。
  • 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,
  • 但是只能用递归函数来实现,不能用其他数据结构。

方法一:

既然是递归,第一反应是采用两个栈实现该功能实现,依次弹出栈顶元素,然后压入另外一个栈中,代码如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import java.util.Stack;public class StackReverse0 {private Stack<Integer> stack0;private Stack<Integer> stack1;public StackReverse0(){stack0 = new Stack<Integer>();stack1 = new Stack<Integer>();}public void getLastElement(){Integer pop = stack0.pop();stack1.push(pop);if(!stack0.isEmpty())getLastElement();}public static void main(String[] args) {StackReverse0 sr = new StackReverse0();sr.stack0.add(1);sr.stack0.add(2);sr.stack0.add(3);sr.stack0.add(4);sr.stack0.add(5);sr.getLastElement();System.out.println(sr.stack1.pop());System.out.println(sr.stack1.pop());System.out.println(sr.stack1.pop());System.out.println(sr.stack1.pop());System.out.println(sr.stack1.pop());}
}

方法2:类似两个stack的思路,不过是使用一个stack搞定。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import java.util.Stack;
public class StackReverse {public static int getAndRemoveLastElement(Stack<Integer> stack){ //负责删除stack bottom的一个元素,并返回int result = stack.pop();if(stack.isEmpty()){return result;}else{int last = getAndRemoveLastElement(stack);stack.push(result);  // stack还原return last;}}public static void reverse(Stack<Integer> stack){if(stack.isEmpty()){return;}int i = getAndRemoveLastElement(stack);reverse(stack);stack.push(i); // 效果就是依次将stack top的元素入栈,最后效果就是stack元素逆序}public static void main(String[] args) {Stack<Integer> stack = new Stack<Integer>();stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);reverse(stack);System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());}
}

Python:如何仅用递归函数和栈操作逆序一个栈相关推荐

  1. 如何仅用递归函数和栈操作逆序一个栈——你要先用stack实现,再去改成递归——需要对递归理解很深刻才能写出来...

    /**  * 如何仅用递归函数和栈操作逆序一个栈  * 题目:  * 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1.  * 将这个栈转置后,从栈顶到栈底为1,2,3,4, ...

  2. 编程3:仅用递归函数和栈操作逆序一个栈

    <?php header("content-type:text/html;charset=utf-8"); /** 仅用递归函数和栈操作逆序一个栈 P8*/function ...

  3. 栈和队列之仅用递归函数和栈操作逆序一个栈

    import java.util.Stack;/*** recursion 递归的意思* @author chenyu* 题目:仅用递归函数和栈操作逆序一个栈,列如一次压入1.2.3.4.5 栈顶到栈 ...

  4. 用递归函数和栈操作逆序一个栈

    以下代码实现的是用递归函数和栈操作逆序一个栈. import java.util.Stack;public class GetAndRemoveLastAndReverse {public stati ...

  5. 如何仅用递归函数和栈操作逆序一个栈

    [题目]​ 一个栈依次压入1.2.3.4.5,那么从栈顶到栈底分别为5.4.3.2.1.将这个栈转置后,从栈顶到栈底为1.2.3.4.5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他 ...

  6. 栈与队列3——用递归和栈操作逆序一个栈

    题目 一个栈依次压入1,2,3:此时栈顶到栈底元素分别为:3,2,1:将栈反转,使得栈顶到栈底元素为:1,2,3,仅限递归函数,并且不能使用其他数据结构 思路 使用两个函数reverse和getAnd ...

  7. function 多个函数用一个_用递归函数和栈逆序一个栈

    实现栈中元素的逆序,而且只能用到递归,不能使用其他的数据结构. 1 栈和递归 栈是先进后出,后进先出的数据结构.使用两个递归函数来实现: 1.将栈底元素返回并返回.每次递归进入下一层,直到栈为空时,返 ...

  8. 左神算法:用递归函数和栈逆序一个栈(Java版)

    题目描述 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1.将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数 ...

  9. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | 引入线程安全概念 )

    文章目录 一.引入线程安全概念 二.完整代码示例 一.引入线程安全概念 在上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 ) ...

最新文章

  1. python3.8.5怎么用-Python 3.8 新功能大揭秘【新手必学】
  2. 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)...
  3. 布线须知:无线AP采用PoE交换机供电的好处
  4. 幸福指数测试软件,测试你和ta的幸福指数能不能爆表
  5. java8 stream案例分析
  6. 99%的面试官都会问到的Java面试题
  7. jq处理返回来json_4个小窍门,让你在Python中高效使用JSON
  8. 重磅!尤雨溪公布 Vue 3.0 开发路线
  9. 雪花算法id长度_分布式全局ID生成器(雪花算法golang无锁版)
  10. 如何排查mysql数据乱码_如何解决MYSQL数据库中文乱码问题?
  11. 控制台或者dll中CreateWindow 出错
  12. 从C# 3.0说以人为本(二)—— LINQ语法结构
  13. wamp mysql_wamp中如何打开mysql
  14. 区块链 - 牵一发而动全身的链式结构
  15. python房价分析论文_用Python研究了三千套房子,告诉你究竟是什么抬高了房价?...
  16. 如把联想电脑计算机图标放在桌面上,桌面无“我的电脑”图标
  17. uniapp 图片上传 删除
  18. 一二线城市知名 IT互联网公司名单(最新整理版跳槽名单)~
  19. python游戏制作rpg_用 Python 语言来写游戏
  20. python 如何将负数转换为正数

热门文章

  1. angular2初入眼帘之-多components协作
  2. jQuery 3教程(三):jQuery集合
  3. addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
  4. 绕过HR破门而入的求职智慧
  5. python m什么意思_Python -m参数原理及使用方法解析
  6. 【转:理论知识】SAP在建工程转固定资产
  7. 姗姗来迟的Ubuntu版MX4,已经没了当年的初衷
  8. ABAP-SQL基础知识
  9. ATP检查的一些TIPS
  10. 关于GUI_DOWNLOAD中下载excel等文档的乱码问题