mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-11 03:10:58 +00:00
build
This commit is contained in:
@@ -14,7 +14,7 @@ comments: true
|
||||
|
||||
## 9.3.1 广度优先遍历
|
||||
|
||||
**广度优先遍历是一种由近及远的遍历方式,从距离最近的顶点开始访问,并一层层向外扩张**。具体来说,从某个顶点出发,先遍历该顶点的所有邻接顶点,然后遍历下一个顶点的所有邻接顶点,以此类推,直至所有顶点访问完毕。
|
||||
**广度优先遍历是一种由近及远的遍历方式,从某个节点出发,始终优先访问距离最近的顶点,并一层层向外扩张**。如下图所示,从左上角顶点出发,先遍历该顶点的所有邻接顶点,然后遍历下一个顶点的所有邻接顶点,以此类推,直至所有顶点访问完毕。
|
||||
|
||||

|
||||
|
||||
@@ -392,7 +392,7 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
}
|
||||
```
|
||||
|
||||
代码相对抽象,建议对照以下动画图示来加深理解。
|
||||
代码相对抽象,建议对照下图来加深理解。
|
||||
|
||||
=== "<1>"
|
||||

|
||||
@@ -441,7 +441,7 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
|
||||
## 9.3.2 深度优先遍历
|
||||
|
||||
**深度优先遍历是一种优先走到底、无路可走再回头的遍历方式**。具体地,从某个顶点出发,访问当前顶点的某个邻接顶点,直到走到尽头时返回,再继续走到尽头并返回,以此类推,直至所有顶点遍历完成。
|
||||
**深度优先遍历是一种优先走到底、无路可走再回头的遍历方式**。如下图所示,从左上角顶点出发,访问当前顶点的某个邻接顶点,直到走到尽头时返回,再继续走到尽头并返回,以此类推,直至所有顶点遍历完成。
|
||||
|
||||

|
||||
|
||||
@@ -449,7 +449,7 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
|
||||
### 1. 算法实现
|
||||
|
||||
这种“走到尽头 + 回溯”的算法形式通常基于递归来实现。与 BFS 类似,在 DFS 中我们也需要借助一个哈希表 `visited` 来记录已被访问的顶点,以避免重复访问顶点。
|
||||
这种“走到尽头再返回”的算法范式通常基于递归来实现。与广度优先遍历类似,在深度优先遍历中我们也需要借助一个哈希表 `visited` 来记录已被访问的顶点,以避免重复访问顶点。
|
||||
|
||||
=== "Java"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user