mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-15 21:20:58 +00:00
deploy
This commit is contained in:
@@ -3496,15 +3496,15 @@
|
||||
<p class="admonition-title">图与树的关系</p>
|
||||
<p>树代表的是“一对多”的关系,而图则具有更高的自由度,可以表示任意的“多对多”关系。因此,我们可以把树看作是图的一种特例。显然,<strong>树的遍历操作也是图的遍历操作的一种特例</strong>,建议你在学习本章节时融会贯通两者的概念与实现方法。</p>
|
||||
</div>
|
||||
<p>「图」和「树」都是非线性数据结构,都需要使用「搜索算法」来实现遍历操作。</p>
|
||||
<p>与树类似,图的遍历方式也可分为两种,即「广度优先遍历 Breadth-First Traversal」和「深度优先遍历 Depth-First Traversal」,也称为「广度优先搜索 Breadth-First Search」和「深度优先搜索 Depth-First Search」,简称 BFS 和 DFS。</p>
|
||||
<p>图和树都是非线性数据结构,都需要使用搜索算法来实现遍历操作。</p>
|
||||
<p>与树类似,图的遍历方式也可分为两种,即「广度优先遍历 breadth-first traversal」和「深度优先遍历 depth-first traversal」。它们也被称为「广度优先搜索 breadth-first search」和「深度优先搜索 depth-first search」,简称 BFS 和 DFS 。</p>
|
||||
<h2 id="931">9.3.1 广度优先遍历<a class="headerlink" href="#931" title="Permanent link">¶</a></h2>
|
||||
<p><strong>广度优先遍历是一种由近及远的遍历方式,从距离最近的顶点开始访问,并一层层向外扩张</strong>。具体来说,从某个顶点出发,先遍历该顶点的所有邻接顶点,然后遍历下一个顶点的所有邻接顶点,以此类推,直至所有顶点访问完毕。</p>
|
||||
<p><img alt="图的广度优先遍历" src="../graph_traversal.assets/graph_bfs.png" /></p>
|
||||
<p align="center"> 图:图的广度优先遍历 </p>
|
||||
|
||||
<h3 id="1">1. 算法实现<a class="headerlink" href="#1" title="Permanent link">¶</a></h3>
|
||||
<p>BFS 通常借助「队列」来实现。队列具有“先入先出”的性质,这与 BFS 的“由近及远”的思想异曲同工。</p>
|
||||
<p>BFS 通常借助队列来实现。队列具有“先入先出”的性质,这与 BFS 的“由近及远”的思想异曲同工。</p>
|
||||
<ol>
|
||||
<li>将遍历起始顶点 <code>startVet</code> 加入队列,并开启循环。</li>
|
||||
<li>在循环的每轮迭代中,弹出队首顶点并记录访问,然后将该顶点的所有邻接顶点加入到队列尾部。</li>
|
||||
|
||||
Reference in New Issue
Block a user