码迷,mamicode.com
首页 > 编程语言 > 详细

【算法总结】深搜

时间:2019-06-19 17:23:36      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:进入   恢复   class   int   nbsp   递归   因此   dep   code   

算法总结-深搜

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

非递归框架

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

 

递归框架

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

 

type node;
void DFS(int depth)
{
    for (node的每一个可行变化)
    {
        改变node
        DFS(depth+1)
        恢复node
    }
}

 

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

 

 

【算法总结】深搜

标签:进入   恢复   class   int   nbsp   递归   因此   dep   code   

原文地址:https://www.cnblogs.com/yun-an/p/11052029.html

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