数据结构第七讲.ppt_第1页
数据结构第七讲.ppt_第2页
数据结构第七讲.ppt_第3页
数据结构第七讲.ppt_第4页
数据结构第七讲.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、复习上节课的内容, 3.1堆栈3.1.1堆栈定义和操作3.1.2堆栈顺序存储结构和基本操作的实现3.1.3堆栈链存储结构和基本操作的实现3.2堆栈应用3.2.1中缀表达式3.2.2中缀表达式转换为等价后缀表达式3.2.3后缀表达式和求值3.3堆栈和递归3.3.1递归和递归程序设计3.2递归程序的执行过程3.3.3递归的应用示例3.4队列3.4.1队列3的定义和操作队列和基本操作的实现3.4.3队列的链式存储结构和基本操作的实现3.4.4队列的应用示例本章摘要, 3.1堆栈3.1.1堆栈定义和操作3.1.2堆栈顺序存储结构和基本操作的实现3.1.3堆栈链存储结构和基本操作的实现3.2堆栈应用3.

2、2.1中缀表达式3.2.2中缀表达式转换为等价后缀表达式3.2.3后缀表达式和求值3.3堆栈和递归3.3.1递归和递归程序设计3.2递归程序的执行过程3.3.3递归的应用示例3.4队列3.4.1队列3的定义和操作队列和基本运算的实现3.4.3队列的链式存储结构和基本运算的实现3.4.4队列的应用实例本章总结如下:第一,问题求解,第二,算法编写:以n的阶乘为例:的定义是:n的阶乘等于n的阶乘乘以n-1,并且公式表明,根据定义,相应的递归函数int fact (int n)如果(n=0)返回1可以自然地编写; 否则返回(n * fact(n-1);如果一个对象部分地包含自己或者自己定义自己,那么它

3、就是递归的。3.3.1递归和递归程序设计,递归算法要点:(1)问题与其自身的子问题相似,且定义项在定义中的应用规模较小。(2)定义的术语在最小尺度上有直接解。设计递归算法的方法是:(1)找到一种方法将问题转化为原问题的子问题(例如n!=n*(n-1)!).(2)设计递归出口并确定递归终止条件(例如,求解n!当n=1时,n!=1).递归算法编写的要点和方法,例3-3使用递归算法求解斐波那契数列的第n项的值。长纤维(int n)int f;if(n=1n=2)f=1;否则f=fib(n-1)fib(n-2);返回f;本章要点, 3.1堆栈3.1.1堆栈定义和操作3.1.2堆栈顺序存储结构和基本操作

4、的实现3.1.3堆栈链存储结构和基本操作的实现3.2堆栈应用3.2.1中缀表达式3.2.2中缀表达式转换为等价后缀表达式3.2.3后缀表达式和求值3.3堆栈和递归3.3.1递归和递归程序设计3.2递归程序的执行过程3.3.3递归的应用示例3.4队列3.4.1队列3的定义和操作队列和基本操作的实现3.4.3队列的链式存储结构和基本操作的实现3.4.4队列的应用示例3.4.4本章总结,3.3.2递归程序的执行过程(1),为3! 以一个例子来说明执行调用的过程,如下图所示。递归函数的递归过程:递归进入该层(ii 1层)时,系统需要做三件事:(1)保留该层的参数和返回地址(将所有实际参数、返回地址等信

5、息传递给被调用函数保存);(2)给低级参数赋值(为被调用函数的局部变量分配存储区域);(3)将程序转移到调谐功能的入口。在从被调用函数返回到调用函数之前,递归回退(ii 1层)系统还应完成三项任务:(1)保存被调用函数的计算结果;(2)恢复上层参数(释放已调功能的数据区);(3)根据被调用函数保存的返回地址,将控制权转移给调用函数。,3.3.2递归程序的执行过程(2),本章要点, 3.1堆栈3.1.1堆栈定义和操作3.1.2堆栈顺序存储结构和基本操作的实现3.1.3堆栈链存储结构和基本操作的实现3.2堆栈应用3.2.1中缀表达式3.2.2中缀表达式转换为等价后缀表达式3.2.3后缀表达式和求值3.3堆栈和递归3.3.1递归和递归程序设计3.2递归程序的执行过程3.3.3递归的应用示例3.4队列3.4.1队列3的定义和操作队列和基本操作的实现3.4.3队列的链式存储结构和基本操作的实现3.4.4队列的应用示例本章摘要,河内塔问题:有三个标有A、B和C的针,A针上有N个板,每个板都比另一个板小。 需要将A针上的所有板移动到C针。移动规则如下:1 .一次只能移动一个盘子。2.在移动过程中,大盘总是在小盘下面。3.在移动过程中,板可以放在任何针上。如果汉诺威塔的演示是n1,直接移动它,否则:1。用C销过渡,并将A销上的n1个板移动到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论