我的程序将 char 数组作为文件的输入。数组如下所示:
"#########",
"# # #",
"# ## # #",
"# # #",
"### # ###",
"# # # #",
"# # #####",
"# # #",
"#########",
我正在实施 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
}
}
像这样实现树然后用它用 DFS 和 BFS 遍历树是否是一种可行的策略,或者我应该以另一种方式进行?