我的程序将一个char数组作为文件的输入.该数组如下所示:
"#########",
"# # #",
"# ## # #",
"# # #",
"### # ###",
"# # # #",
"# # #####",
"# # #",
"#########",
Run Code Online (Sandbox Code Playgroud)
我正在实现DFS和BFS来解决这个迷宫,从[1,1]开始到[width - 1,height - 1]结束.
我想到制作一个代表迷宫的树,然后分别使用每个算法遍历树.
我将从每一行开始并扫描空单元格,在每个空单元格中,其右侧,左侧和底部的每个单元格将成为该单元格的子级.它看起来像这样:
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
if (isEmpty(maze[i][j]))
{
putChildren(maze[i-1][j], maze[i][j+1], maze[i+1][j]);
//this will check if it's a wall first
}
}
Run Code Online (Sandbox Code Playgroud)
以这种方式实现树然后用DFS和BFS遍历树是否是一种可行的策略,或者我应该采用另一种方式?