小编Pow*_*yte的帖子

实现迷宫的树在DFS,BFS中使用

我的程序将一个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遍历树是否是一种可行的策略,或者我应该采用另一种方式?

c++ tree breadth-first-search depth-first-search

6
推荐指数
1
解决办法
1108
查看次数