迷宫问题课程设计-数据结构.docVIP

  • 18
  • 0
  • 约 5页
  • 2017-08-17 发布于安徽
  • 举报
迷宫问题 一.需求设计:以一个m*n 的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口的通道,或得出没有通路的结论。//八个方向的数组表示形式 int move[8][2]={{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1, 0},{-1, 1}}; //用结构体表示位置 struct position { int x,y; }; position stack[m*m+1];如果用二维数组move记录8个方向上行下标增量和列下标增量,则沿第i个方向前进一步,可能到达的新位置坐标可利用move数组确定: x=x+move[i][0] y=y+move[i][1] 从迷宫的入口位置开始,沿图示方向顺序依次进行搜索。 在搜索过程中,每前进一步,在所到位置处做标记“?” (表示这个位置在通路上),并将该位置的坐标压入栈中。 每次后退的时候,先将当前所在位置处的通路标记“?”改 成死路标记“×”(表示这个位置曾到达过但走不通,以后 不要重复进入),然后将该位置的坐标从栈顶弹出。 搜索到出口位置时,数组中那些值为“?”的元素形成一条 通路。 三.详细设计: 源程序: /* 迷宫问题 走迷宫的过程可以模拟为一个搜索的过程:每到一 处,总让它按东、东南、南、

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档