深度优先搜索(缩写DFS)是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先的概念。
DFS可以用到队列也可不用对列,具体的可以由题目的情况而定;
在对列的使用中,队列提供了一个位置使得在几个方向的前进得以同时进行,也就是说我么在检索的时候,由于我们同时开花,因此在到达我们设定的跳出的条件时,我们就能能够得到最优的那一条路径。
要注意的点如下
- 使用队列,每次执行后,须将队列的首元素山区,这样才可不断的遍历下去;
- 一般设置两个数组(有时也可一个数组即可)一个char 的Game_map存放地图;一个int的record_way记录当前路线所走过的位置(其他的路线人可以走这个地方);
- 判断条件一定要清晰且完全;
- 全局变量的设置和使用,全局变量在完成一次执行时,必需重置或释放;
在不使用对列的情况下,我们就需要用到函数去不断迭代,在这中请况下,我们就不能直接的得到最有的那一条路径,但一般用来寻找可达的地点(虽然第一种也可以,但较为复杂);
要注意的点如下
- 注意跳出的条件;
- 全局变量的设置和使用,全局变量在完成一次执行时,必需重置或释放;
时间: 2024-10-11 23:02:32