本文为:ES聚合算法原理深入解读:深度优先算法(DFS)和广度优先算法(BFS)第三篇
深度优先算法(DFS)和广度优先算法(BFS):DFS 和 BFS 在 ES 中的应用(一)
深度优先算法(DFS)和广度优先算法(BFS):深度优先搜索算法(二)
深度优先算法(DFS)和广度优先算法(BFS):广度优先搜索算法(三)
2、广度优先搜索(Depth-First Search)
2.1 图的广度优先搜索
和树
不同,图没有根节点,并且是可以回溯的,比如下图所示,为一个 8 节点的图搜索表示
2.2 邻接表
下图为 2.1 中图搜索所示图
的邻接表形式。可以看到,节点7、节点8、节点10
是没有任何出度和邻接点的。
其中,纵坐标表示 出度节点,横坐标表示 邻接点
比如,下图中:
- 节点0:邻接点为
节点1、节点2、节点3
- 节点3:邻接点为
节点0、节点6
2.4.1 队列
图的广度优先遍历是靠队列
来完成的,我们首先创建一个空队列
2.4.3 遍历序列
准备一个空的遍历序列,用来存放最终生成的访问元素。
第1步
节点0
入队列
2.5 动画演示
[video(video-kjGoS722-1654356792134)(type-csdn)(url-https://live.csdn.net/v/embed/213990)(image-https://video-community.csdnimg.cn/vod-84deb4/80b9c7c21a514634921a15aa65de1dd9/snapshots/91bd34eb5f254953a9bfe73fd22a8c5c-00002.jpg?auth_key=1654352465-043f64f72aa742878670d6a1026e045a-0-0edbbb37c05d01aeaec3711dcf095798)(title-BFS)]