用二维数组,表示一个迷宫,通过程序,给出迷宫的路径
用0表示通路。用1表示墙

解决方案 »

  1. 1。建数组
    int[][] a = new int[num][5];//num为迷宫内位置总数
    a[i][0]=0或1,用0表示通路,用1表示墙,-1表示出口。
    a[i][1]-a[i][4]表示四个方向相邻位置在数组的位置。
    2。初始化数组,自己想一个吧。
    3。建一个堆栈放路径。
    4。用递归算路径。
    判断当前是否墙:
    a[i][0]==0墙,返回false;
    a[i][0]==1通路,将该位置放入堆栈,继续递归相邻4个方向位置,若4个方向都返回false,则将该位置移出堆栈,并返回false;否则返回true;
    a[i][0]==-1到达出口,将该位置放入堆栈,并返回true。
    5。打印出堆栈里的路径。
      

  2. 推荐看这篇
    http://blog.vckbase.com/panic/archive/2005/03/20/3778.html
      

类似问题 »