码迷,mamicode.com
首页 > 其他好文 > 详细

DFS思想

时间:2017-07-25 22:29:52      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:执行   最优   判断   深度优先   连通   深度   思想   路径   ack   

深度优先搜索(缩写DFS)是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先的概念。

DFS可以用到队列也可不用对列,具体的可以由题目的情况而定;

在对列的使用中,队列提供了一个位置使得在几个方向的前进得以同时进行,也就是说我么在检索的时候,由于我们同时开花,因此在到达我们设定的跳出的条件时,我们就能能够得到最优的那一条路径

要注意的点如下

  • 使用队列,每次执行后,须将队列的首元素山区,这样才可不断的遍历下去;
  • 一般设置两个数组(有时也可一个数组即可)一个char 的Game_map存放地图;一个int的record_way记录当前路线所走过的位置(其他的路线人可以走这个地方);
  • 判断条件一定要清晰且完全;
  • 全局变量的设置和使用,全局变量在完成一次执行时,必需重置或释放;

在不使用对列的情况下,我们就需要用到函数去不断迭代,在这中请况下,我们就不能直接的得到最有的那一条路径,但一般用来寻找可达的地点(虽然第一种也可以,但较为复杂);

要注意的点如下

  • 注意跳出的条件;
  • 全局变量的设置和使用,全局变量在完成一次执行时,必需重置或释放;

DFS思想

标签:执行   最优   判断   深度优先   连通   深度   思想   路径   ack   

原文地址:http://www.cnblogs.com/7750-13/p/7236692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!