本帖最后由 guhonglueying 于 2011-03-26 02:46:08 编辑

解决方案 »

  1.   

    算法没看,你的“贴墙走是”在真的贴墙走还是指“当遇到障碍的时候再向右”,前者可以,具体原理请看代数拓扑,后者的话根本没任何道理,就像你说的“孤岛”,你用likedList来储存也不行的原因可能是因为你没有记录当时的朝向(我没看代码,不确定)。所以可能第二次左传一次与第一经过这里的路线是一样的。迷宫问题就“贴墙走”和回溯,其实原理都是利用“道路连通性”,至于哪个快看具体迷宫的边界和“面积”的“量化参数”的关系了。
      

  2.   

    破迷宫时有很多算法的 a* 蚁群等等a*的http://www.leyond.info/source-code-of-a-start-algorithm/蚁群http://wenku.baidu.com/view/d4ef4ed276a20029bd642d6b.html
      

  3.   

    深度搜索,应该不需要用LinkList来存储已走过的格,只需要用个所谓“先进后出”的堆栈来存储就够了,走过的格子应该设为一个禁区,例如墙。这样就不会出现重复走同一个格子。