深度优先搜索属于图算法的一种,缩写为DFS。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次,特别的它在搜索前不判断条件,直接进行搜索。
-
使用栈来实现。相关算法实现总结为:
(1将初始节点压栈。 (2 While(栈非空) { (3 取出栈顶点,并且定义一个临时结点暂时存储这个节点信息。 ( 4 访问该节点,并且标示已访问。 ( 5将栈顶元素出栈。 (6遍历有关节点,一般为移动方向dx,dy (7 如果符合题目入栈要求就将其入栈。 }
-
使用递归来实现。相关算法实现总结为: (1) DFS(初始节点) (2) Function DFS(一个节点) { (3) 判断结束条件 (4) For(遍历该节点的相邻的未访问过的节点) { 标记该节点被访问vis[i]=1; (5) DFS(这个邻接节点) 取消标记vis[i]=0; } }
-