- 12
- 0
- 约2.32万字
- 约 7页
- 2016-10-09 发布于贵州
- 举报
迷宫算法(经典广优先搜索算法),广度优先搜索迷宫,深度优先搜索迷宫,深度优先搜索走迷宫,广度优先搜索走迷宫,广度优先搜索算法,深度优先搜索算法,bfs广度优先搜索算法,宽度优先搜索算法,树的宽度优先搜索算法
经典广度优先搜索算法,用parentx,parenty存储上一步的位置,规范化使用队列和栈。迷宫暂定为8*6,动态生成,四周为一圈障碍,出口坐标为(8,6)。坐标的定义类似图形编程的屏幕坐标,横向为x分量,垂直为y分量,左上角为原点。
可以向8个方向试探。源代码(TC下编译运行通过):#include stdio.h#include stdlib.h#define Status int#define OK 1#define ERROR 0#define OVERFLOW -2#define TRUE 1#define FALSE 0#define ROW 8??????????? /*行列可自定*/#define COLUM 10????? /*行列可自定*/#define OUT 8#define STEPPED 2#define MAXQSIZE 100int maze[8][10]/*6行8列*/={{1,1,1,1,1,1,1,1,1,1},{1,0,1,1,1,1,0,0,0,1},{1,0,1,0,0,1,1,0,0,1},{1,0,0,0,1,0,1,0,0,1},{1,1,1,0,1,0,1,0,0,1},{1,0,0,0,0,0,0,0,0,1},{1,0,0,0,0,0,0,1,OUT,1},{1,1,1,1,1,1,1,1,1,1}};/*此处只是给一个初始化的例子,可以删去,后面的代码可以动态生成迷宫*/void CreateRandomMaze()/*随机生成迷宫(可能产生走不通的迷宫)*/{int i,j;srand((int)time());/*设置随机数种子,产生真随机数*/for(i=0;iROW;i++){for(j=0;jCOLUM;j++){maze[i][j]=rand()%2;/*产生0~1的随机数*/}}for(i=0;iCOLUM;i++){maze[0][i]=1;maze[ROW-1][i]=1;}for(i=0;iROW;i++){maze[i][0]=1;maze[i][COLUM-1]=1;}maze[1][1]=0;maze[ROW-2][COLUM-2]=OUT;/*设置出口*/}void printMaze()/*打印迷宫*/{int i,j;/*clrscr();*//*这个是turbo C的清屏函数,可以替代或忽略*/for(i=0;iROW;i++){for(j=0;jCOLUM;j++){printf( %d,maze[i][j]);}printf(\n);}/*delay(1000);*/}/*********************队列(非循环顺序队列)************************/typedef struct{int x,y;int parentx,parenty;?????? /*记录上一个节点即路径中前驱节点,方便最后输出*/}QNode,*QueuePtr;typedef QNode ElemType;typedef struct SqQueue{ElemType * base;int front;int rear;}SqQueue;/*队列结构体*/Status InitQueue(SqQueue *Q)/*初始化队列*/{Q-base = (ElemType *)malloc(MAXQSIZE *sizeof(ElemType));if(!Q-base){exit(OVERFLOW);}Q-front = Q-rear = 0;return OK;}int QueueLength(SqQueue Q){return Q.rear - Q.front;}Status QueueEmpty(SqQueue Q){if(Q.front==Q.rear){return TRUE;}return FALSE;}Status GetHead(SqQueue Q,ElemType *e){if(Q.front==Q.rear){return ERROR;}*e = Q.base[Q.front];return OK;??? }Status EnQueue(SqQueue *Q,ElemType e){if(Q-rearMAXQSIZE-1)/*队列满*/{return ERROR;}Q-base[Q-rear]=e;(Q-rear)++;return OK;}Status DeQ
您可能关注的文档
- 过氧化钠与水反应列实验的研究报告.doc
- 过渡金属配合物论:蝎型金属羧酸配合物的设计、合成、表征及SOD活性研究.doc
- 迁安水资源调查总告(审定稿2006.03.03).doc
- 过程装备与控制工专业生产实习计划(实习报告).doc
- 过程装备与控制工专业英语翻译16-30单元.doc
- 过程设备设计第三(郑津洋)课后习题答案.doc
- 过零比较和锁相环位比较器电路原理图如图.doc
- 迈向专业化之路~二届当代幼儿园教师成长高峰论坛-赵强.doc
- 迎接BTEC项目审汇报材料.doc
- 迎接唐山市教育教督导验收工作汇报(定).doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 12S10管道支架、吊架建筑工程规范图集.pdf VIP
- 铸造工艺学(课本).pdf VIP
- 部编版二年级下册语文全册《写字表》生字字帖.pdf VIP
- 数学六年级上册100道口算题大全(全册各类齐全18份).doc VIP
- 八年级物理寒假提升精品讲义第01讲 力(预习)(原卷版).pdf VIP
- 波谱分析法课件.ppt VIP
- 数学分析第五版(上册)华东师大习题答案解析.docx
- 运筹学基础及应用-第1章-线性规划及单纯形法(胡运权版).ppt VIP
- 八年级物理寒假提升精品讲义第01讲 力(预习)(解析版).docx VIP
- 11S405-4 建筑给水塑料管道安装通用详图国标 建筑图集 汇编 .docx VIP
原创力文档

文档评论(0)