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

2.
递归调用的实质是返回地址不断进栈的过程,分析时注意形参与实参的结合,若是变参不再重新分配内存单元,若是值参重新分配内存单元,登记该变量在本层的实际值,返回时应使用本层原来保留的参数值,应着重搞清调用与返回的层次关系.  相似文献   

3.
分析递归算法的栈实现以及用栈运算转换递归算法为非递归算法,阐述递归思想及其应用。  相似文献   

4.
简述了递归调用的方法,下面从四个实例出发介绍了直接递归调用和间接递归调用的用法。  相似文献   

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

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

7.
基于递归树的递归调用分析   总被引:1,自引:0,他引:1  
提出一种基于递归树的递归调用分析方法。通过建立子递归调用与树节点的映射关系,设计了创建递归树的递归算法。研究了观察点与递归树遍历序列的关系,提出了"遍历序列-观察点-递归调用映射规则"。实现了递归树的创建及遍历,并基于STL和boost库定义了一组分析工具。  相似文献   

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

9.
在子程序内直接或间接调用了它本身,就叫做递归调用,简称递归.要理解递归,必须用程序跟踪的方法,执行每一步、理解每一步,你会理解递归的过程.  相似文献   

10.
王军 《铜仁学院学报》2005,7(6):37-38,41
二叉树非递归遍历是用显示栈来存储二叉树的结点指针。前序遍历时,按二叉树前序遍历的顺序访问结点并将结点的指针入栈,直到栈项指针指向的结点的左指针域为空时取出栈项指针并删除栈项指针,访问刚取出的指针指向的结点的右指针指向的结点并将其指针入栈,如此反复执行且在有标志的情况下实现前序非递归算法。后序遍历时,按二叉树后序遍历的顺序将结点的入栈,直到栈项指针指向的结点的左指针域为空时取出栈顶指针,若刚取出的指针指向的结点的右指针域为空时,访问该指针指向的结点;若不空时,叉将其右指针入栈,反复执行且在有标志的情况下实现后序非递归算法,最后给出前序和后序的非递归算法。  相似文献   

11.
A lab exercise in generating permutations can be very effective in two different computer science courses. In a first‐year computer science course, it is a good exercise in recursion, since it would be very difficult to do the problem without recursion. Second, in a Computer Organization or Assembly Language course, it reinforces very well the concepts of recursion and the use of a stack in implementing recursion, and drives home the idea that advanced data structures can be used in assembly language. Further concepts illustrated are the importance of analysing whether parameters should be var or value parameters, and the potential uses for a hardware stack.  相似文献   

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

13.
递归算法在处理复杂问题时作用突出,通过对递归本质特性进行剖析,从递归概念及其优、缺点所在,对克服栈溢出的方法进行了探讨。  相似文献   

14.
对于背包问题这样一个经典的递归问题,发现了它的下需栈支持的循环解法,并由此说明其存在并行解。  相似文献   

15.
Recursion is a central concept in computer science, yet it is difficult for beginners to comprehend. Israeli high-school students learn recursion in the framework of a special modular program in computer science (Gal-Ezer & Harel, 1999). Some of them are introduced to the concept of recursion in two different paradigms: the procedural programming paradigm and the logic programming (LP) paradigm. Here we discuss the implication of first learning recursion in LP on the students’ understanding of the concept. The declarative approach for teaching recursion in logic programming seems to enhance students’ recursion comprehension. We found that students who learned recursion in LP before learning it in a procedural paradigm differed, in terms of their mental models of recursion, from those who were acquainted with recursion in procedural programming only. More of the LP students possessed an adequate model of recursion as a process than did the non-LP students. Moreover, the LP students also attained a unique conception of recursion as a tool for knowledge representation.  相似文献   

16.
采用递归迭代法解决了某几种数值积分的计算问题,该方法比采用传统的复化的梯形公式、复化的辛浦生公式来得快,更精确,容易达到要求的精度。  相似文献   

17.
递归(Recursion)问题是计算机程序设计语言软件教学中的一个重要内容,也是教学难点之一.其教法对学生正确理解和应用递归解决实际问题是一个关键,这是许多教师探讨的问题.结合递归问题教法中的一个典型实例进行分析,以数学归纳法思想讲解递归问题,可以取得较好的教学效果.  相似文献   

18.
本文通过举例及对递归算法和非递归算法的时间复杂度分析,说明了对于符合递归设计思路的实际问题所设计的解决算法,为什么应尽可能不采用递归的设计思路。  相似文献   

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

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