每日一演算法 老鼠走迷官(二)

2021-06-19 03:30:10 字數 740 閱讀 6141

說明由於迷宮的設計,老鼠走迷宮的入口至出口路徑可能不只一條,如何求出所有的路徑呢?

解法求所有路徑看起來複雜但其實更簡單,只要在老鼠走至出口時顯示經過的路徑,然後退回上一格重新選擇下乙個位置繼續回溯就可以了,比求出單一路徑還簡單,我們的程式只要作一點修改就可以了。

#include void visit(int, int);

int maze[9][9] = ,

, ,, ,

, ,, };

int starti = 1, startj = 1; // 入口

int endi = 7, endj = 7; // 出口

int main(void)

else

}printf("\n");

} visit(starti, startj);

return 0;

} void visit(int i, int j)

else if(maze[m][n] == 1)

else

}printf("\n");

}} if(maze[i][j+1] == 0)

if(maze[i+1][j] == 0)

if(maze[i][j-1] == 0)

if(maze[i-1][j] == 0)

maze[i][j] = 0;

}

老鼠走迷官(一)

說明老鼠走迷宮是遞迴求解的基本題型,我們在二維陣列中使用2表示迷宮牆壁,使用1來表 示老鼠的行走路徑,試以程式求出由入口至出口的路徑。解法老鼠的走法有上 左 下 右四個方向,在每前進一格之後就選乙個方向前進,無法前 進時退回選擇下乙個可前進方向,如此在陣列中依序測試四個方向,直到走到出口為止,這是 ...

老鼠走迷官(一)

老鼠走迷宮是遞迴求解的基本題型,我們在二維陣列中使用2表示迷宮牆壁,使用1來表示老鼠的行走路徑,試以程式求出由入口至出口的路徑。解法老鼠的走法有上 左 下 右四個方向,在每前進一格之後就選乙個方向前進,無法前進時退回選擇下乙個可前進方向,如此在陣列中依序測試四個方向,直到走到出口為止,這是遞迴的基本...

C 經典演算法題 老鼠走迷官(一)

說明老鼠走迷宮是遞迴求解的基本題型,我們在二維陣列中使用2表示迷宮牆壁,使用1來表 示老鼠的行走路徑,試以程式求出由入口至出口的路徑。老鼠的走法有上 左 下 右四個方向,在每前進一格之後就選乙個方向前進,無法前 進時退回選擇下乙個可前進方向,如此在陣列中依序測試四個方向,直到走到出口為止,這是遞迴的...