数据结构编程《迷宫问题》.ppt

上传人:tian****1990 文档编号:8445672 上传时间:2020-03-29 格式:PPT 页数:13 大小:732KB
返回 下载 相关 举报
数据结构编程《迷宫问题》.ppt_第1页
第1页 / 共13页
数据结构编程《迷宫问题》.ppt_第2页
第2页 / 共13页
数据结构编程《迷宫问题》.ppt_第3页
第3页 / 共13页
点击查看更多>>
资源描述
迷宫问题 迷宫问题 主要内容1 问题分析2 递归算法3 非递归算法 1 问题分析 1 问题分析 迷宫求解这是一个找出口的问题 自相似性表现在什么地方 每走一步的探测方式 由于计算机很傻 只能通过穷举方式找出口 怎么找法 沿着一个方向走下去 如果走不通 则换个方向走 四个方向都走不通 则回到上一步的地方 换个方向走 依次走下去 直到走到出口 1 问题分析 描述迷宫 1 设置迷宫为二维数组 数组的值是 1 代表墙0 代表未走过的路径1 代表走不通的路径2 代表路径 1 问题分析 1 问题分析 2 设置搜索方向顺序是东 南 西 北 x y x 1 y x y 1 x y 1 x 1 y 东 北 2 递归算法 明确递归函数的意义每一步的走法intnext intarr 10 Pointcur Pointend 迷宫求解 每走一步 1 如果当前位置 出口 结束2 否则 假设当前位置为路径 如果东面未走过 向东走一步如果南面未走过 向南走一步如果西面未走过 向西走一步如果北面未走过 向北走一步设置当前位置走不通 回溯 intnext intarr 10 Pointcur Pointend if cur x end x 3 非递归算法 程序步骤 1 当前位置入栈2 判断下一步是否可通 可通 则返回步骤1 不可通 换方向继续探索 3 若四周 均无通路 则当前位置出栈 从前一位置换方向搜索 voidMasePath intarr 10 Pointstart Pointend StackPointStack PointP start arr P x P y 2 do PointStack Push P if arr P x P y 1 0 arr P x P y 2 elseif arr P x 1 P y 0 arr P x P y 2 elseif arr P x P y 1 0 arr P x P y 2 elseif arr P x 1 P y 0 arr P x P y 2 else P PointStack Pop arr P x P y 1 P PointStack Pop while P x end x P y end y 辅助函数 打印迷宫voidPrintPath intarr 10 for inti 0 i 10 i for intj 0 j 10 j if arr i j 1 cout elseif arr i j 2 cout elsecout cout endl cout endl
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!