第3章栈和队列第7讲-队列的应用-求解迷宫问题ppt课件_第1页
第3章栈和队列第7讲-队列的应用-求解迷宫问题ppt课件_第2页
第3章栈和队列第7讲-队列的应用-求解迷宫问题ppt课件_第3页
第3章栈和队列第7讲-队列的应用-求解迷宫问题ppt课件_第4页
第3章栈和队列第7讲-队列的应用-求解迷宫问题ppt课件_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、栈和队列都是存放多个数据的容器。通常用于存放临时数据,如果先放入的数据先处理,则使用队列。 如果后放入的数据先处理,则使用栈,3.2.4 用队列求解迷宫问题,1/12,使用一个队列qu记录走过的方块,该队列的结构如下,typedef struct int i,j;/方块的位置 int pre/本路径中上一方块在队列中的下标 Box;/方块类型 typedef struct Box dataMaxSize; int front,rear;/队头指针和队尾指针 QuType;/定义顺序队类型,这里使用的队列qu不是环形队列(因为要利用出队的元素找路径),因此在出队时,不会将出队元素真正从队列中删除

2、,因为要利用它输出路径,数据组织,2/12,当前方块,front:当前方块在队列中的下标,算法设计,首先将入口进队。出队一个方块,考察如下,3/12,入口,0,方块,方块,方块,方块,方块,方块,方块,出口,所有搜索过的方块都在队列中。 最后通过队列找出从出口 入口的一条迷宫路径,4/12,0,1,2,3,4,5,0,1,2,3,4,5,int mgM+2N+2= /M=4,N=4 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,

3、0:(1,1) -1,入口,2:(2,1) 0,1:(1,2) 0,3:(1,3) 1,5:(2,3) 3,4:(3,1) 2,6:(3,2) 4,7:(2,4) 5,8:(3,3) 5,9:(4,2) 6,10:(4,3) 8,11:(4,4) 10,出口,迷宫路径: (4,4) (4,3) (3,3) (2,3) (1,3) (1,2) (1,1,5/12,bool mgpath1(int xi,int yi,int xe,int ye)/搜索路径为:(xi,yi)-(xe,ye) Box e; int i, j, di, i1, j1; QuType *qu;/定义顺序队指针qu Ini

4、tQueue(qu);/初始化队列qu e.i=xi; e.j=yi; e.pre=-1; enQueue(qu,e);/(xi,yi)进队 mgxiyi=-1;/将其赋值-1,以避免回过来重复搜索,用队列求一条迷宫路径的算法: (xi,yi) (xe,ye,6/12,while (!QueueEmpty(qu)/队不空循环 deQueue(qu,e);/出队方块e i=e.i; j=e.j; if (i=xe /找到一条路径时返回真,7/12,for (di=0;difront; enQueue(qu,e);/(i1,j1)方块进队 mgi1j1=-1;/将其赋值-1 DestroyQueue(qu);/销毁队列 return false;,8/12,对于图3.7的迷宫,求解(1,1)(8,8)时队列qu中结果如下,9/12,迷宫路径如下: (1,1) (2,1) (3,1) (4,1) (5,1) (5,2) (5,3) (6,3) (6,4) (6,5) (7,5) (8,5) (8,6) (8,7) (8,8,运行结果,对于图3.11的

温馨提示

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

评论

0/150

提交评论