在学习java之前,看过别的语言描述的递归。对递归也有大致的认识,遇到一些简单的显而易见的递归问题也能解决,但对递归的实现过程还是不了解。昨天痛下决心要把数据结构再深刻的学习一下,还是从递归学起。说白了递归就是自己调用,当然得有一个停止的条件,否则会无限制的调用下去。
拿两个例子对递归做初步认识吧
public static void f(int n){
System.out.println(n);
if( n > 1){
f( n - 1);
}
}
public static void ff(int n){
if( n > 1){
ff( n - 1);
}
System.out.println(n);
}
f(3),ff(3)它们会打印出什么结果呢
分析这个过程 首先是f(3)执行打印3
然后 f(3)调用f(2)
打印2
这时n= 2仍然大于1调用f(1)
打印1
同时调用完毕 结束 得到以上的结果
这是一个显而易见比较好分析的递归过程
待续分析ff(3)的递归过程
分享到:
- 2007-12-15 17:06
- 浏览 1051
- 评论(0)
- 论坛回复 / 浏览 (0 / 1262)
- 查看更多
相关推荐
参考例6.2构造一个翻译模式,并由此构造一个递归下降翻译器,把每个标识符的类型存入符号表。 功能拓展: 对于输入的一串执行语句,其中包括:赋值语句、选择语句和循环语句。设计递归下降翻译器,完成语法分析和...
3.设计出模块结构、测试数据,初步编制好程序。 (二)上课上机: 将源代码拷贝到机上调试,发现错误,再修改完善。第二次上机调试通过。 (三)程序要求: 程序输入/输出示例: 对下列文法,用递归下降分析法对...
递归实现十进制数从高位到低位依次输出 主要是我对递归算法的初步理解后试手制作希望对你有用
以上是针对给定题目标题和描述的初步分析,每道题目都需要具体分析其背景和要求,以确定最佳的递归解决方案。学习和实践这些递归题目,不仅可以提高编程技能,还能加深对递归算法的理解,对于提升解决实际问题的能力...
本文主要讨论了一种使用递归回溯法解决整数线性规划问题的方法,并提供了...尽管这种方法可能在复杂问题上不如分支定界法全面,但对于理解和学习整数线性规划的求解过程,以及进行初步的求解尝试,是一种有效的途径。
然后,通过讲解一些简单的例子来帮助学生建立初步的感性认识。接着,通过解决一些经典问题,如阶乘计算、斐波那契数列求值和汉诺塔问题,来加深学生的理解。此外,教师还需要强调递归函数的两个关键要素:一是问题...
- 设计出模块结构、测试数据,并初步编写程序代码。 2. **上机调试**: - 将编写好的程序拷贝到计算机上进行调试。 - 分析并修正错误,不断完善程序。 3. **实验报告撰写**: - 记录实验过程中遇到的问题...
- 初步了解分治策略的基本思想。 #### 实验内容 1. **标准二分搜索算法** - 二分搜索是一种高效的查找算法,适用于有序数组。 - 工作原理:每次都将查找区间分为两半,根据比较结果确定下一步搜索的方向。 - ...
首先通过建立节点类,然后通过递归算法来建立整个二叉树。在这个过程中,我们可以学习到如何增加节点、删除节点以及查找节点等算法。这些算法对于初学者来说非常有益,能够帮助我们初步理解二叉树的概念和操作。此外...
2. 设计解决方案,包括模块结构和测试数据,初步编写程序。 3. 上机调试,遇到错误时分析并修复,教师参与讨论以优化方案和代码。 4. 改进文法,使其更加复杂和全面,如文法E→E+T|E-T|T,T→T*F|T/F|F,F→F^P|P,P...
中间代码是源程序经过初步编译后的结果,它通常更接近于机器语言,但仍然保持了一定程度的抽象性。四元式是一种常用的中间代码形式,由操作符、两个操作数和结果组成。对于DO-WHILE循环,四元式的生成主要涉及循环的...
原始图像通过这一级CNN,可以初步提取图像的基本特征。接着,得到的特征图进一步被输入到二级网络,即同时通过卷积层和递归神经网络。卷积层继续细化特征提取,递归神经网络则有助于学习和理解图像的组合特征,尤其...
在这个实验中,已经给出了词法分析程序(mylexer.l),其生成的lex.yy.c文件包含了对输入表达式的初步处理。词法分析程序通过正则表达式识别数字(INTEGER和DOUBLE),并将它们转换为适当的数值类型(如整数和浮点数...
1、了解Makefile的基本概念和基本结构 2、初步掌握编写简单Makefile的方法 3、了解递归Make的编译过程 4、初步掌握利用GNU Make编译应用程序的方法
**算法初步课件详解** 算法是计算机科学的基础,它是一系列解决问题或执行任务的精确步骤。在本“初步算法课件”中,我们将深入探讨算法的基本概念、设计思想以及常见算法类型,帮助初学者建立起坚实的算法基础。 ...
递归神经网络 使用由Tensorflow实现的Adam优化器训练的通用递归神经网络类...我们已经对与杨(Yang)等人在论文“训练为执行许多认知任务的神经网络中的任务表示”中使用的任务相似的任务进行了初步分析。 等(2019)。
4. **递归**:理解递归的概念,知道如何设计和分析递归算法,以及如何处理递归终止条件。 5. **复杂度分析**:初步了解时间复杂度和空间复杂度的概念,能估算算法运行时间和所需存储空间。 【统计和概率】 统计学...
算法初步是高中数学中的一个重要部分,特别是在准备高考的过程中,考生需要对这一专题有深入的理解和熟练的运用。本文将详细解析“算法初步”这一考点,帮助考生全面掌握相关知识点。 一、算法的基本概念 1. 算法...