首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 656 毫秒
1.
递归算法的非递归化实现   总被引:14,自引:0,他引:14  
由递归算法直接转换成相应的非递归算法能有效地提高程序的执行效率,本文列出了几类递归算法的非递归化实现方法,分别说明了这几类递归算法的特点及算法实例,并给出了相应的非递归算法。  相似文献   

2.
关于Hanoi塔问题的非递归算法,已有了大量的研究[1 ̄4]。实验表明,当圆盘数目较少时,现有的非递归算法的执行速度比递归算法要快一些,但是随着圆盘数目的增加,现有的非递归算法的执行速度会逐渐变得比递归算法慢。论文提出了一种基于压缩编码的非递归新算法,在压缩了存储空间的同时,提高了算法的执行速度。实验结果表明,对于任意圆盘数目n,论文所实现的非递归算法的执行速度比现有的递归算法和非递归算法都有成倍的提高。  相似文献   

3.
虽然递归算法具有结构简练、清晰、可读性强等优点,但有时受执行效率和程序设计语言的限制,必须实现递归向非递归的转换.提出一个通用的算法框架实现一般递归算法向非递归算法的转换.该框架产生的非递归算法没有标号,适用于大多数程序设计语言.结合几个典型的实例说明该框架的应用方法和有效性.  相似文献   

4.
递归做为一种算法设计思想在求解实际问题和程序设计中广泛应用,采用递归设计的算法具有思路清晰、易于描述复杂问题等优点。文中对递归算法的理论依据、设计思想、应用、递归的内部执行过程做了较为全面的探讨,并以火车进站问题为例,重点分析了如何根据问题的递归表达函数扩充为递归算法。同时,对递归的非递归化作了较为深入的分析和探讨,并给出了实例源程序。理论分析和实践证明,在具体应用问题中,通过寻找问题对应的递归表达函数,可以容易和准确地设计出求解的递归算法,提高算法设计效率。  相似文献   

5.
杨明 《微型计算机》1996,16(6):51-52
本文对递归的非递归算法进行了研究,并给出了由递归到递推的抽象算法,并说明了该算法的具体运用。  相似文献   

6.
朱长元 《计算机与现代化》2011,(12):185-187,190
由递归算法直接转换成相应的非递归算法能有效地提高程序的执行效率。本文针对一个企业材料截断应用案例.通过数学建模、算法分析与实现,证明效果很好。  相似文献   

7.
递归算法简单自然、结构清晰、易写易读、易于验证其正确性,但执行效率不高。因此,在程序设计中,通常对所要处理的问题先用递归算法加以描述,然后再将其改写成非递归算法。本文从四个方面论述了递归算法的模拟问题。  相似文献   

8.
基于状态机的递归算法非递归化框架   总被引:1,自引:0,他引:1  
由递归程序转换到非递归程序可以避免栈内存溢出问题并可以提高算法效率。借助状态机编程的思想,提出一种递归到非递归转换的框架。将函数的调用和返回过程看作是状态的转换,并将递归过程模拟为"进入函数"、"进入递归点"、"从递归点返回"等状态。实验中,将几种具有代表性的递归算法转换为非递归算法,从转换后代码可以看出,提出的框架与"while-while"和"while-if"等常见框架相比,具有结构清晰、代码简洁和转换过程程序化强的优点。  相似文献   

9.
递归算法的非递归化研究   总被引:7,自引:0,他引:7  
孟林 《计算机科学》2001,28(8):96-98
1 引言在工程实际中,有许多概念是用递归来定义的,数学中的许多函数也用递归来表达。一个递归算法的执行过程类似于多个函数的嵌套调用,只是主调函数和被调函数是同一个函数而已,在执行过程中,信息的传递和控制的转移必须通过栈来实现,这就导致空间耗费大,执行效率较低,尤其是当递归深度较深时,不但耗费的空间大而且执行的效率也相当低,这是递归算  相似文献   

10.
使用非递归方式实现递归问题的算法程序,不仅可以节省存储空间,而且可以极大地提高算法程序的执行效率。本文给出了两种将递归问题的递归算法转换成非递归算法的有效方法,并以具体实例加以说明。  相似文献   

11.
给出了深度优先周游二叉树的前序、中序、后序的3种递归算法,在分析了周游二叉树的递归算法中的工作栈的执行过程的基础上,设计了先序、中序、后序周游二叉树的非递归算法,对深度优先周游二叉树算法的性能进行了分析。  相似文献   

12.
递归问题的非递归实现方法的应用研究   总被引:1,自引:0,他引:1  
使用非递归方式实现递归问题的算法程序,不仅可以节省存储空间,而且可以极大地提高算法程序的执行效率.本文将递归问题分成简单递归问题和复杂递归问题;简单递归问题的非递归实现采用递推技术加以求解,复杂递归问题则根据问题求解的特点采用两类非递归实现算法,使用栈加以实现.  相似文献   

13.
二叉树的先序遍历和中序遍历的非递归算法   总被引:2,自引:0,他引:2  
黄霞 《电脑开发与应用》2010,23(1):53-54,59
从二叉树先序遍历递归算法的执行过程的分析入手,总结出二叉树先序遍历的实质,从而得出利用栈的二叉树的非递归算法。最后,再从分析二叉树中序遍历与先序遍历过程实质的不同之处,得出了二叉树中序遍历的非递归算法。重点在于对二叉树先序和中序遍历过程实质的分析。  相似文献   

14.
递归算法的非递归实现   总被引:5,自引:0,他引:5  
递归以其算法简单清晰、可读性强及易实现而具有很好的理论,但在实际应用时,递归过程用到的大量数据不管有用无用都需要保存,而当递归层次多到一定程度,将耗尽系统内存资源,因此很少在真正的实际应用中使用,实用性较差。如果可以设计出一种既保持递归算法简单、清晰、易实现的优点,双能避免递归算法极耗内存缺陷的新型递归算法,将是一件十分有意义的事情。  相似文献   

15.
递归算法的主要作用是把复杂问题分解为简单问题来求解。对于某些复杂问题(例如hanio塔问题),递归算法是一种自然且合乎逻辑的解决问题的方式,但是递归算法的执行效率通常比较差。因此,在求解某些问题时,常采用递归算法来分析问题,用非递归算法来求解问题;另外,有些程序设计语言不支持递归,这就需要把递归算法转换为非递归算法。  相似文献   

16.
提出一种把递归过程转换为非递归过程的方法——递归树法,画出递归过程的递归树,然后通过对递归树的后根序遍历实现递归过程的非递归化,最后通过案例说明该方法的可行性和有效性。  相似文献   

17.
递归算法在数据结构课程中既是重点又是难点,对递归算法理解和把握直接决定了很多算法的理解。该文通过对递归的概念,举例说明利用递归求解问题的步骤以及通过分析二叉树的前序遍历算法来剖析递归的执行过程,最后给出了递归的直观理解。  相似文献   

18.
二叉树后序遍历的非递归算法   总被引:1,自引:0,他引:1  
从示范二叉树的后序遍历入手,得出二叉树后序遍历递归算法的执行过程以及工作栈的变化情况,从中分析与总结,得出二又树后序遍历的实质.从对二叉树后序遍历实质的进一步分析,得出两个特征,其一,当栈指针为空时,判断其是左子树还是右子树,来做出不同的处理;其二,从出栈结点是第一次出栈还是第二次出栈来决定是否访问该结点.从而得出二叉树后序遍历的两种非递归算法.最后,通过分析,对第二种算法再进行改进.  相似文献   

19.
刘雄恩 《福建电脑》2003,(12):19-19
本文提出遍历文件夹及其中子文件夹中所有文件的递归和非递归两种算法,并给出了实现算法的Pascal源程序关键片段,及算法分析。  相似文献   

20.
汉诺塔非递归算法   总被引:1,自引:0,他引:1  
分析汉诺塔递归算法的特点,由递归算法,结合二叉树的中序遍历算法,提出汉诺塔二叉树的概念及创建方法,并证明汉诺塔二叉树特点。由此进一步导出兼顾时间效率与空间效率的非递归算法。最后,提供实现算法的C语言程序。  相似文献   

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

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