深度优先搜索遍历详解
发布时间: 2023-03-21
深度优先搜索是一种在爬虫开发早期比较常用的方法。它的目的是达到被搜索结构的叶节点(即不包含超链接的HTML文件)。当一个HTML文件中的超链接被选中时,被链接的HTML文件会执行深度优先搜索,即在搜索其余的超链接结果之前,必须对一个单独的链进行完整的搜索。深度搜索跟随HTML文件中的超链接,直到它被卡住,然后返回到一个特定的HTML文件,继续选择该HTML文件中的其他超链接。当不能再选择超链接时,搜索就完成了。
深度优先搜索是一种图算法,其首字母缩写为DFS(Depth First Search)。
为了说明问题,如果我们从A点开始进行深度优先搜索(下面的访问顺序不是唯一的,第二个点可以是B或C、D),那么我们可以得到如下的过程。A->B->E(没有办法!回到A)->C->F->H->G->D(没有办法,最后回到A,A也没有未访问的邻居节点,这个搜索结束)。
简要解释一下深度优先搜索的特性:任何深度优先搜索的结果都必须是图的一个连接部分。深度优先搜索可以从多个点开始。如果我们对深度优先搜索中每个节点的 "结束时间 "进行排序(通过创建一个列表,然后在每个节点的邻居被访问过后将其放在列表的末尾,然后再将整个链条反转),我们就会得到所谓的 "拓扑排序"。
深度优先遍历图的方法是,从图中某顶点 v 出发:
(1)访问顶点 v;
(2)依次从 v 的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和 v 有路径相通的顶点都被访问;
(3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。 当然,当人们刚刚掌握深度优先搜索的时候常常用它来走迷宫.事实上我们还有别的方法,那就是广度优先搜索(BFS).
上一篇: ACID是什么意思
下一篇: curl命令状态码详解