用栈代替递归 计算机815考研科目?
计算机815考研科目?
815《计算机专业基础综合》硕士研究生入学考试和《数据结构》、《计算机组成原理》、《操作系统》三一大块内容,各占1/3。
考试大纲:
数据结构
1、数据结构的基本概念,算法教材习题解答特征,算法的简单分析与时间/空间复杂度。
2、线性表的概念特征及的实现方法。
3、栈和队列的概念特征及实现方法,递归过程。
4、双维数组与存储,特殊能量矩阵和稀疏矩阵的压缩后存储。
5、二叉树的性质及实现方法,线索二叉树,二叉排序树,达到平衡二叉树,哈夫曼树,堆的建立,直接插入和删掉算法的实现。
6、树与森林的概念,存储及操作算法,B树,B树的定义及操作的实现。
7、图的概念,存储可以表示,操作及应用的实现。
8、查看的概念及典型查看算法的实现,哈希表。
9、排序的概念及典型排序算法的实现。
递归调用的形式与特点?
递归过程是方法自己全局函数自己,象用在父子级结构中。但应注意二分查找次数不宜过多要先设置递归的出口不然会使栈程序报错而抛出无比使项目崩掉
为什么栈相对于堆很小?
栈的大小一般是一就开始就固定设置的大小,但是相对而言堆的大小来说非常小。
就没那就急切,栈和堆全是内存空间上定义的逻辑空间,栈这个可以使用后的内存空间,也可以可以使用非后的内存空间,但在访问时是时间限制在空间的一端,栈像是用于关闭或递归过程等操作中,贮放的信息太远。而堆结构占内存的是内存中一片尝试的系统分区,其用途是主要是用于储存时程序代码或数据的,空间肯定比栈要大。大多数他所的逻辑块虽然应该两个概念,stack和heap吧!
是否所有的循环函数都可用递归来实现呢?
先说看看个人理解-是的,所有的循环函数都这个可以用递归来实现方法。至少,我目前是这样认为的。
所谓的递归函数是是直接间接调用函数本身,则访函数被称递归算法函数我们怎么学习的时候接触的比较好多的是一种叫斐波那契数列,在这里我们以1到100的数列求和为例,第一种是按照循环基于的,第二种则通过递归利用。
图1,求逆利用的方法
图2,递归基于的方法
从上面对比看出来,两者都可以不实现程序你所选的目的,但递归过程函数给人的感觉人精简整合些,我知道,递归函数的优点本质简单啊、逻辑清晰,正毕竟,逻辑清晰,我们有的时候比较比较难于顿时再理解透。
因为,在我的确循环函数是也可以都用递归过程函数基于,只要你你逻辑够强。当然需要注意什么,递归过程是一种栈的动态创建,不需要如何防止栈泻出,栈的大小不是什么无限的。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。