首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 672 毫秒
1.
文中对递归的本质进行了探讨,以汉诺塔(Tower of Hanoi)问题为例,对采用递归算法解决递归问题进行了简要分析,提出采用一种图示方式直观理解递归算法的执行过程,并用标记法编写程序打印递归算法的顺序执行过程。  相似文献   

2.
本文从递归算法的外在形式出发,将递归算法划分为三种情形,依递归算法的执行情况,得出递归算法的非递归化的策略:递归调用在算法尾部(返回语句除外)的情形,从上而下地递归到底,找到递归的终止条件,然后从下而上地用循环实现递归算法的非递归化;递归调用在中间时,依递归算法的执行情况,利用堆栈进行现场的保护与恢复,从而实现递归算法的非递归化;递归调用在中间的特殊情形,依递归算法的执行,将其转化为递归调用在尾部的情形。  相似文献   

3.
探讨了实现递归算法替换非递归算法的多种方法。对于那些不支持递归的程序设计语言(如Fortran语言),通过采用这些方法,不仅为递归问题的非递归化找到了一些有效的解决途径。而且提高了程序的执行效率。  相似文献   

4.
数据结构中递归算法实验教学的探讨   总被引:1,自引:0,他引:1  
邓鹰 《怀化学院学报》2004,23(2):132-134
讨论递归算法实验教学的两个问题 问题Ⅰ :先依据有关数学原理写出数递推等式 ,再根据常系数递推等式编写递归算法 ,从而使学生容易掌握递归算法的设计 问题Ⅱ :引入递归状态树 ,使得递归错综复杂的调用关系变得清晰、明了 ,从而使学生更容易分析递归算法的执行过程  相似文献   

5.
本文分析了程序设计中递归算法执行速度慢的原因,提出了递归算法的非递归技术,此法计算速度很快,通用性较强,可用于改造一切使用递归方法设计的程序。  相似文献   

6.
递归算法结构简单、清晰,可读性好,且易于验证其正确性,但浪费空间且执行效率低。因此,有时需要把递归算法转换成非递归算法。本文给出几种递归算法的特点及相应非递归算法实现的方法。  相似文献   

7.
汉诺塔问题是一个古典数学问题,对于给定的盘子数量及每步移动盘子次序是确定的。因此,只要能够确定盘子移动的规则,就可以通过计算机程序加以实现。递归算法虽然代码简单,但对于初学者而言,理解其内涵存在困难,且算法执行效率不高。提出一种基于非递归思想的移动方向判断算法解决汉诺塔问题,通过与递归算法执行时间比较,提出的判断移动方向算法执行效率更高,且算法思想相对更简单、更容易理解。  相似文献   

8.
递归调用是程序设计中一个非常重要的方法。本文对程序算法的递归调用及递归调用与非递归调用的转化从基本定义、实现过程及转化方法等几个方面进行了理论探讨,并结合实例做了进一步应用分析。此法简单直观,结构清晰,但计算机的执行过程比较复杂,时空性能相对较差。若在程序中消除递归调用,则其运行时间可大为节省。  相似文献   

9.
递归调用是程序设计中一个非常重要的方法。本文对程序算法的递归调用及递归调用与非递归调用的转化从基本定义、实现过程及转化方法等几个方面进行了理论探讨,并结合实例做了进一步应用分析。此法简单直观,结构清晰.但计算机的执行过程比较复杂,时空性能相对较差。若在程序中消除递归调用,则其运行时间可大为节省。  相似文献   

10.
黄津津 《教育探索》2008,(11):69-70
递归是计算机科学的一个重要概念,递归算法是程序设计中经常采用和有效的编程方法。用递归设计的程序结构比较简洁和清晰,但递归算法是较难理解和掌握的,因此,对递归算法的概念及结构进行深入分析,给出递归算法的设计方法,并通过对递归算法的内部实现过程的描述,可以帮助学生正确理解和应用递归算法解决实际问题。  相似文献   

11.
1 引言递归程序设计方法,具有容易理解,容易设计,程序清晰易读等优点,作为程序设计的一种方法被广泛地使用,递归算法简明,且被众多的高级语言采用。然而,BASIC语言却不支持递归调用,某些递归描述的算法不能直接用它实现,虽然我们能够将一些递归过程转换成非递归过程,但对程序设计增加了很大的难度,文虽然提出了利用变量、字符串和数组等方法来解决递归问题,但对树结构问题进行检索、排序却难以实现.本文利用堆栈和栈指针的方法,实现BASIC子程序的递归调用更具有一般性。  相似文献   

12.
通过仔细分析二叉树的递归创建过程,借助堆栈、完全二叉树的概念和二叉树的顺序存储来实现非递归算法,并对算法进行了分析。使执行过程不依赖于函数或过程的重复调用,有更大的灵活性,可以应用在程序与软件设计中。  相似文献   

13.
刘璐 《衡水学院学报》2009,11(4):37-39,43
二叉树的构造有多种方法,给出一棵二叉树的中序序列和后序序列,可以构造出这棵二又树,但一般采用递归算法.尽管递归算法具有结构简炼、清晰、可读性强等优点,但递归算法在执行过程会耗费太多的时间和空间,为了追求算法的时空效率,必须将递归算法转化为非递化算法,问题才能得到有效解决,本文设计了一个非递归算法,输入一棵二又树的中序遍历和后序遍历的结点序列,构造出该二又树,该算法对于一棵有n个结点的二又树,具有O(n)时间复杂度,是解决该问题的最优算法.  相似文献   

14.
Hanoi塔问题是一个古典的数学问题,在C程序设计中常用递归算法去分析处理.但由于其递归算法中有两次递归调用,其程序执行的具体过程很复杂,很难直接看出其调用过程.本文通过运用堆栈概念深入分析Hanoi塔问题递归过程并修改其通用的C程序递归算法,使其递归算法程序执行过程具有直观易于理解性,对深入理解和灵活运用递归算法有积极意义.  相似文献   

15.
递归算法是程序设计中的一种重要算法.用递归设计的程序结构比较清晰、简洁,但由于递归的设计思想比较巧妙,特别是对于规模较大的问题,掌握递归的实现过程和算法的复杂度分析并不是一件容易的事.因此,本文通过具体实例详细分析了递归算法的实现过程和复杂度,以此来加深对递归算法的进一步理解.  相似文献   

16.
汉诺塔问题的非递归算法实现   总被引:4,自引:0,他引:4  
采用双向链表和堆栈技术,对汉诺塔问题递归算法进行研究与分析,提出了一种占据内存更少、速度更快且实现简单的非递归算法。  相似文献   

17.
本文以计算依赖图为分析工具,分析了递归算法的执行过程.  相似文献   

18.
递归是解决实际工程问题中常用的工具,但其在执行时具有空间耗费大、效率低的不足.给出了递归借助堆栈的实现过程,针对其不足提出了改进的方法——向非递归的转化.  相似文献   

19.
递归算法的复杂度一直是《数据结构》课程的的难点和教学重点,由于递归算法本身的特殊性,通常无法通过分析语句执行频度来计算其复杂度,给教学带来困难,为此,提出一种依据递归算法的特点建立算法模型,列出语句执行频度方程,引入差分方程,采用数学迭代法求解来组织教学。  相似文献   

20.
本文以计算依赖图为分析工具,分析了递归算法的执行过程。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号