递归与广义表ppt课件.ppt

递归与广义表ppt课件.ppt

ID:58902198

大小:322.00 KB

页数:66页

时间:2020-09-29

递归与广义表ppt课件.ppt_第1页
递归与广义表ppt课件.ppt_第2页
递归与广义表ppt课件.ppt_第3页
递归与广义表ppt课件.ppt_第4页
递归与广义表ppt课件.ppt_第5页
资源描述:

《递归与广义表ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、递归(Recurve)的概念迷宫(Maze)问题递归过程与递归工作栈广义表(GeneralLists)小结第五章递归与广义表递归的概念递归的定义若一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归的;若一个过程直接地或间接地调用自己,则称这个过程是递归的过程。以下三种情况常常用到递归方法。定义是递归的数据结构是递归的问题的解法是递归的定义是递归的求解阶乘函数的递归算法longFactorial(longn){if(n==0)return1;elsereturnn*Factorial(n-1);}例如,阶乘函数求解阶乘n!的过程计算斐波那契数列的函数Fib(n)的定义求解斐波那契

2、数列的递归算法longFib(longn){ if(n<=1)returnn;elsereturnFib(n-1)+Fib(n-2);}数据结构是递归的搜索链表最后一个结点并打印其数值templatevoidFind(ListNode*f){if(f→link==NULL)cout<voidPrint(ListNode*f,Type&x){if(f!=NULL)if(f→data==x) co

3、ut<#include"strclass.h”voidHanoi(intn,StringA,StringB,StringC){//解决汉诺塔问题的算法if(n==1)cout<<"move"<

4、弯进到33右拐弯进到44(堵死)回溯退到33(堵死)回溯退到22正向走进到55(堵死)回溯退到22右拐弯进到66左拐弯进到7(出口)43521766左0直2右0行3行5行60040000007007小型迷宫的数据迷宫的类定义#include#include#includeclassMaze{private:intMazeSize;intEXIT;Intersection*intsec;public:Maze(char*filename);intTraverseMaze(intCurrentPos);}交通路口结构定义struct

5、Intersection{intleft;intforward;intright;}Maze::Maze(char*filename){//构造函数:从文件filename中读取各路口 //和出口的数据ifstreamfin;fin.open(filename,ios::in

6、ios::nocreate);//为输入打开文件,文件不存在则打开失败if(!fin){ cout<<“迷宫数据文件”<>MazeSize;//输入迷宫路口数intsec=newIntersection[MazeSize+1];//创建迷宫路口数

7、组for(inti=1;i<=MazeSize;i++)fin>>intsec[i].left>>intsec[i].forward>>intsec[i].right;fin>>EXIT;//输入迷宫出口fin.close();}迷宫漫游与求解算法intMaze::TraverseMaze(intCurrentPos){if(CurrentPos>0){//路口从1开始if(CurrentPos==EXIT){//出口处理cout<

8、out<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。