数据结构-栈逆序
时间:2019-11-27
本文章向大家介绍数据结构-栈逆序,主要包括数据结构-栈逆序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
案例三:
实现一个栈的逆序,但是只能用递归函数和这个栈本身的操作来实现,而不能自己申请另外的数据结构(from直通bat)
回忆视频中调用过程的图示分析,加强理解!!
public int get(Stack<Integer> stack){ int result = stack.pop; if(stack.isEmpty()){ return result; }else{ int last = get(stack); stack.push(result); return last; } }//该函数功能为,移除栈底元素并返回 public void reverse(Stack<Integer> stack){ if(stack.isempty()){ return ; } int i = get(stack); reverse(stack); stack.push(i); } //get方法为,把栈底元素删除并返回功能。 //以上代码为,把栈中元素逆序的主方法。
重新理解递归:
流程是什么,递归思路(分治思路)。
递归的确是把大问题化成小问题,但是在化的过程中牵涉到一种分治的思想。
终止条件:什么情况下问题不需要划分了。
如何理解递归行为?系统上如何实现?
一开始,主函数。
我的这个参数指望着我的子过程给我返回。
递归函数就是系统在帮你压栈的理解:
函数所有信息压到栈里(跑到第几行,所有参数和变量),然后调用子过程,之前的过程全在栈里。
怎么接着跑?拿出栈顶函数的所有信息(还原现场)接着跑,参数接住了子过程的返回值。
逻辑概念上的解释,系统上的实现,递归函数不是玄学,递归函数是有实际落地的结构的。
一个函数调用子过程之前会把自己的所有过程全部压到栈里去,信息完全保存;
子过程返回之后,会利用这些信息彻底还原现场,继续跑;
最后串起来所有子过程,跟父过程通信。
任何递归行为都可以改成非递归。递归变迭代。
用压栈过程去分析。
打到一切牛鬼蛇神!
93-108min-初级班1
原文地址:https://www.cnblogs.com/SUMaywlx/p/11941633.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
- Python Switch Case三种实现方法代码实例
- PHP正则表达式笔记与实例详解
- php实现微信分享朋友链接功能
- python交互模式基础知识点学习
- 浅析Python 抽象工厂模式的优缺点
- 基于PyTorch的permute和reshape/view的区别介绍
- Laravel配置全局公共函数的方法步骤
- PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
- python–shutil移动文件到另一个路径的操作
- PHP正则表达式处理函数(PCRE 函数)实例小结
- yii2的restful api路由实例详解
- PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
- 用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
- Python操作MySQL数据库的示例代码