下图所示的迷宫,从(1,1)走到(8,8)
int mg[10][10] = { //迷宫
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 1, 0, 0, 0, 1, 0, 1},
{1, 0, 0, 1, 0, 0, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 1, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 0, 0, 0, 1},
{1, 0, 1, 0, 0, 0, 1, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 1, 1, 0, 1},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
迷宫用二位数组表示,0表示可以通过的块,1表示不可以通过的块。
大致思路:
定义一个栈,栈元素包括路径的坐标(x,y)、(x,y)的扫描记录(di)和栈顶(top)三个变量。di用来标记当前位置的上下左右四个位置,如下图,最上边方位0是di=0,右边方位1是d