2_2_递归与非递归程序的转换.pptVIP

  • 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)

1亿VIP精品文档

相关文档