迷宫
选择手动或者自动生成一个n×m的迷宫,将迷宫的左上角作入口,右下角作出口,设“0”为通路,“1”为墙,即无法穿越。假设从起点出发,目的为右下角终点,可向“上、下、左、右、左上、左下、右上、右下”8个方向行走。如果迷宫可以走通,则用“■”代表“1”,用“□”代表“0”,用“☆”代表行走迷宫的路径。输出迷宫原型图、迷宫路线图以及迷宫行走路径。如果迷宫为死迷宫,则只输出迷宫原型图。
[解决办法]
这东西哥做了比较久...只能说3言2语说不清。。。
走迷宫的大概原理其实都是图的知识。。。解法上分内存解法和非内存解法的。。。考虑到现在内存都比较大所以介绍你内存解法。。。如果是老师出的题,一般也无非是想考数据结构的知识。。。
大概解法总是先把图转换成树(这一步去掉环路),然后把不通向终点的枝叶去掉。。。如果还要判优算法,还需要枚举环路部分的。。。
===========以下内容没时间看的话可以无视===========
你要是自己写着玩,还可以用非内存解法,就是假设你自己从起点出发怎样找到终点。。。那需要在途中标记(标记可以被转化成线性的过程,所以就可以实现缓冲区交换了,就成了非内存解法)一个o方块走位上只会有1到3个出口(入口的数量始终是1个)。你可以假设你出发后一直往“前”走。这样的话走着走着:如果出口都是x,意味着前方不通了,是一个死胡同;如果有且只有一个出口,表示你在路上;剩下的情况可看作路口了。如果路口o被标记过,表示你肯定找到了一个环路,这样你必须退回上一格。。。这样走下去的话一定可以走到出口的
[解决办法]
楼主去了解下搜索算法(深度优先搜索,广度优先搜索,A*)
[解决办法]
走迷宫,一般是图的相关算法的应用。DFS 或者 BFS 或者什么其他的。