欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计报告-迷宫求解(递归与非递归)

    • 资源ID:1421538       资源大小:92KB        全文页数:10页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    数据结构课程设计报告-迷宫求解(递归与非递归)

    1、 数据结构课程设计数据结构课程设计 迷宫求解迷宫求解 班级:班级: 学号:学号: 姓名:姓名: 指导老师:指导老师: 迷宫求解迷宫求解 1 1、 问题描述问题描述 输入一个任意大小的迷宫数据, 用递归和非递归两种方法求 出一条走出迷宫的路径,并将路径输出。 2 2、 设计思路设计思路 从入口出发,按某一方向向前探索,若能走通并且未走过,即某 处可以到达,则到达新点,否则试探下一个方向;若所有的方向均没 有通路,则沿原路返回前一点,换下一个方向再继续试探,直到找到 一条通路,或无路可走又返回入口点。 在求解过程中,为了保证在到达某一点后不能向前继续行走(无 路)时,能正确返回前一点以便继续从下一

    2、个方向向前试探,则需要 用一个栈 (递归不需要递归不需要) 保存所能够到达的每一点的下标及从该点前 进的方向。设迷宫为 m 行 n 列,利用 mazemn来表示一个迷宫, mazeij=0 或 1;其中:0 表示通路,1 表示不通,当从某点向下 试探时,中间点有四个方向可以试探,而四个角点有两个方向,其他 边缘点有三个方向,为使问题简单化,用 mazem+2n+2来表示迷 宫,而迷宫的四周的值全部为 1,这样做使问题简单了,每个点的试 探方向全部为 4,不用再判断当前点的试探方向有几个。 3 3、 数据结构数据结构设计设计 在上述表示迷宫的情况下,每个点有 4 个方向去试探,如当前点 的坐标(

    3、x,y) ,与其相邻的 4 个点的坐标都可根据与该点的相邻方 位而得到。因为出口在(m,n) ,因此试探顺序规定为:从当前位置 向前试探的方向为从正东沿顺时针方向进行。为了简化问题,方便求 出新点的坐标, 将从正东开始沿顺时针进行的 4 个方向的坐标增量放 在一个结构数组 move4中,在 move 数组中,每个元素有两个域组 成,x 为横坐标增量,y 为纵坐标增量。这样对 move 设计会很方便地 求出从某点(x,y)按某一方向 v(0top=-1; return S; int Empty_SeqStack(PSeqStack S) /*判栈空*/ if(S-top=-1) return 1

    4、; else return 0; int Push_SeqStack(PSeqStack S,Datatype x) /*入栈*/ if(S-top=MAXSIZE-1) return 0; else S-top+; S-dataS-top=x; return 1; int Pop_SeqStack(PSeqStack S,Datatype *x) /*出栈*/ if(Empty_SeqStack(S) return 0; else *x=S-dataS-top; S-top-; return 1; void Destroy_SeqStack(PSeqStack *S) /*毁栈*/ if(*

    5、S) free(*S); *S=NULL; return; int mazepath(int mazen+2,item move4,int x0,int y0) /*迷宫功 能实现函数*/ /*求迷宫路径,入口参数:迷宫数组,下标移动的增量数组,开始点(x0, y0) ,0(m,n)是终点,返回值:1 表示求出路径,0 表示无路径*/ PSeqStack S; Datatype temp; int x,y,d,i,j; temp.x=x0; temp.y=y0; temp.d=-1; S=Init_SeqStack(); /*初始化栈*/ if(!S) printf(“栈初始化失败“); re

    6、turn 0; Push_SeqStack(S,temp); while(!Empty_SeqStack(S) Pop_SeqStack(S, x=temp.x; y=temp.y; d=temp.d+1; while(d4) /*存在剩余方向可以搜索*/ i=x+moved.x; j=y+moved.y; if(mazeij=0) /*此方向可以走*/ temp.x=x; temp.y=y; temp.d=d; mazexy=-1; Push_SeqStack(S,temp); /*点(x,y)可以走,用栈保存可以 走的路径*/ x=i;y=j; if(x=m printf(“(%d,%d)-“,temp.x,temp.y); /*打印可以走 的路径*/ Destroy_SeqStack


    注意事项

    本文(数据结构课程设计报告-迷宫求解(递归与非递归))为本站会员(毕***)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583