递归和其在二叉树中的应用.pptVIP

  • 1
  • 0
  • 约3.01千字
  • 约 14页
  • 2017-06-09 发布于湖北
  • 举报
一、递归的定义 递归: 程序调用自身的编程技巧称为递归。 递归函数:是直接调用自己或间接调用自己的函数。 举例:直观的递归 某些数学函数是递归定义的。 求n!。 具体实现如下: long fact(int n) { if(n==0) return 1; else return n*fact(n-1); } 二、递归函数适用的场合 在解决现实问题中,对于求解一个复杂的或者问题规模较大的问题,可以将其划分为一些简单的或者规模较小的问题进行解决,如果这种划分满足: 所划分成的子问题性质与原来的大问题相同。 当问题规模小到一定程度的时候直接有解。 对于满足以上条件的问题我们就可以考虑使用递归的方法求解。 hanoi塔问题 问题描述: 假设有三个分别命名为X、Y、Z的塔座,在X塔座上叠放着n个小盘压大盘的圆盘堆,要求将塔座X上的n个圆盘移至塔座Z上,并按同样顺序叠放。 要求: 1、每次只能移动一个圆盘; 2、圆盘可以放在X、Y、Z中的任意塔座上; 3、任何时刻都不能将大盘压在小盘上; hanoi塔问题 如果有一个盘子,直接从X移到Z即可。 如果有n个盘子要从X移到Z,Y作为辅助。问题可以转化为,先将上面n-1个从X移动到Y,Z作为辅助,然后将第n个从X移动到Z,最后将剩余的n-1个从Y移动到Z,X作为辅助。 hanoi塔问题 Void ha

文档评论(0)

1亿VIP精品文档

相关文档