2.向量、栈和队列b.pptVIP

  • 7
  • 0
  • 约 46页
  • 2017-09-08 发布于河南
  • 举报
2.向量、栈和队列b

目标 了解递归方法 理解递归的栈实现 熟悉队列概念和基本操作 掌握队列的实现及其应用 递归与栈 递归:用自身的简单情况来定义自己的方式 较大规模的问题可以用较小规模的子问题描述 递归出口:递归的终结定义 存在可直接求解的最小子问题 递归与栈 Hanoi塔问题 传说古代印度婆罗门庙里有一个塔台,台上有3根用钻石做成的柱子A,B,C。在A柱上放着64个金盘,每一个都比下面的略小一点。把A柱上的金盘全部移到C柱上的那一天就是世界的末日。 移动规则:一次只能移动一个金盘;移动过程中大盘不能放在小盘上面。 这种移动一共要进行264-1次,如果每秒移动一次,需要5000多亿年。 Hanoi塔问题 Hanoi塔问题 问题分解: 第1个子问题是把n-1个盘子从A柱移到B柱,这其实是一个n-1阶的汉诺塔问题; 第2个子问题是把最大的盘子从A柱移到C柱; 第3个子问题是把n-1个盘子从B柱移到C柱,这也是一个n-1阶的汉诺塔问题。 Hanoi塔问题 Hanoi塔问题 递归过程的实现 递归的计算机实现要解决两个关键问题: 调用子过程 返回子过程结果 调用子过程: 保存调用信息(实参、返回地址、局部变量) 分配被调过程数据区 把控制转移到被调过程的入口 返回子过程结果: 保存返回信息(计算结果) 释放被调过程的数据区 把控制按返回地址转移到调用过程中去 递归过程的实现 递归过程的实现 递归过程的

文档评论(0)

1亿VIP精品文档

相关文档