算法筑基(八)DFS和BFS

194 阅读1分钟

DFS和BFS是用于树和图的搜索算法,全名叫做,深度优先搜索(Depth First Search)广度优先搜索(Breadth First Search)。

就和常用的for循环遍历数组查找一样,是一种约定俗成常用的算法。两者的区别在于访问顺序不同

关键点:使用缓存Set,保证每个节点仅访问一次。

DFS模版代码:

image.png

多叉树模版:

image.png

非递归写法:(手动维护一个栈)

image.png

BFS可以联想到水滴滴到大海,地震波等生活场景

BFS模版代码:(队列实现)

image.png

觉得看代码有点抽象的话,可以在这个网站上看动画演示: ViSualgo.net

实战例题

课后练习

本文内容来源:极客时间覃超老师的算法训练营