这个题目和数据结构---图有关,由于我对图掌握的不是很熟悉,所以写这篇博客来加深自己的理解。
迷宫的随机生成和路径搜索主要和图的遍历有关,一般来说图的遍历主要有两种方式:1、深度优先遍历(DFS)2、广度优先遍历(BFS)
两种遍历方式都很好理解,就说说深度优先遍历:
深度优先遍历,顾名思义,就是尽可能往深处遍历,访问到一个节点时,搜索这个节点没有被访问过的相邻节点,选择一个继续做同样的操作,直到没有邻节点为止再回溯到上一个访问的节点,并选择另外的邻节点。
可以这样描述深度遍历:
(1)访问顶点v;
(2)从v的未被访问的邻接点中选取一个顶点w,重复第一步,如果v没有未访问的邻接点,回溯至上一顶点;
(3)重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。
例如上图,一个可能的遍历顺序就是1-->2-->5-->6-->3-->7-->8-->4-->9-->10。
那么,迷宫的生成和路径搜索与图的遍历有什么关系呢?
假设有如下一个图: