- 3
- 0
- 约1.15千字
- 约 41页
- 2017-04-27 发布于四川
- 举报
2_2_递归与非递归程序的转换
递归程序?非递归程序;0 递归的基本概念;0 递归的基本概念;0 递归的基本概念;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;1 递归算法的设计;2 为什么:递归?非递归?;2 为什么:递归?非递归?;2 为什么:递归?非递归?;2 为什么:递归?非递归?;2 为什么:递归?非递归?;2 为什么:递归?非递归?;3 递归?非递归的转换;3 递归?非递归的转换方法1-表述1;3 递归?非递归的转换方法1-表述1;3 递归?非递归的转换方法1-表述1;3 递归?非递归的转换方法1-表述1; 讨论直接使用栈保存中间结果,从而将递归算法转化为非递归算法的过程。以求N!为例,其递归模型有一个递归体和一个递归出口两个式子,分别称为(1)式和(2)式。
;设计一个栈,其结构如下:
struct
{ int vn; /*保存n值*/
int vf; /*保存fun1(n)值*/
int tag; /*标识是否求出fun1(n)值,
1:未求出,0:已求出*/
} St[MaxSize]; /*定义简单数组栈*/ ;计算fun1(5)之值的过程如下:
将(5,*,1)进栈;
while (栈不空)
{ if (未计算出栈顶元素的vf值即St[top
原创力文档

文档评论(0)