算法总结深搜

Posted yun-an

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法总结深搜相关的知识,希望对你有一定的参考价值。

算法总结-深搜

由于是深度优先,后进入的结点需要先读取,因此选取堆栈实现,在栈中保存从起始结点(状态)到当前结点的路径上的所有结点。一般用递归实现。

非递归框架

DFS()

    初始化栈
        while (栈不为空 & 未找到目标结点)
    
        取栈顶元素扩展,扩展出的结点放回栈顶
    
    ......

 

递归框架

在深度优先搜索中,状态空间的图结构并不一定需要显式地保存下来。

 

type node;
void DFS(int depth)

    for (node的每一个可行变化)
    
        改变node
        DFS(depth+1)
        恢复node
    

 

该做法需要一个全局数组array来存放每个走过的node,array[depth]就是进入DFS函数时需要扩展的结点。

 

 

以上是关于算法总结深搜的主要内容,如果未能解决你的问题,请参考以下文章

一本通例题埃及分数—题解&&深搜的剪枝技巧总结

算法-图中两个点之间的路线(深搜或者广搜)

算法笔记 深搜

算法-图是否为树(并查集或深搜)

SLAM算法总结——经典SLAM算法框架总结

SLAM算法总结——经典SLAM算法框架总结