This commit is contained in:
krahets
2023-08-21 19:32:49 +08:00
parent c0f960b443
commit c359c07fe0
67 changed files with 443 additions and 442 deletions
+3 -3
View File
@@ -3428,7 +3428,7 @@
<h1 id="92">9.2 &nbsp; 图基础操作<a class="headerlink" href="#92" title="Permanent link">&para;</a></h1>
<p>图的基础操作可分为对“边”的操作和对“顶点”的操作。在“邻接矩阵”和“邻接表”两种表示方法下,实现方式有所不同。</p>
<h2 id="921">9.2.1 &nbsp; 基于邻接矩阵的实现<a class="headerlink" href="#921" title="Permanent link">&para;</a></h2>
<p>给定一个顶点数量为 <span class="arithmatex">\(n\)</span> 的无向图,则有:</p>
<p>给定一个顶点数量为 <span class="arithmatex">\(n\)</span> 的无向图,则各种操作的实现方式如下图所示。</p>
<ul>
<li><strong>添加或删除边</strong>:直接在邻接矩阵中修改指定的边即可,使用 <span class="arithmatex">\(O(1)\)</span> 时间。而由于是无向图,因此需要同时更新两个方向的边。</li>
<li><strong>添加顶点</strong>:在邻接矩阵的尾部添加一行一列,并全部填 <span class="arithmatex">\(0\)</span> 即可,使用 <span class="arithmatex">\(O(n)\)</span> 时间。</li>
@@ -4528,7 +4528,7 @@
</div>
</div>
<h2 id="922">9.2.2 &nbsp; 基于邻接表的实现<a class="headerlink" href="#922" title="Permanent link">&para;</a></h2>
<p>设无向图的顶点总数为 <span class="arithmatex">\(n\)</span> 、边总数为 <span class="arithmatex">\(m\)</span> ,则有:</p>
<p>设无向图的顶点总数为 <span class="arithmatex">\(n\)</span> 、边总数为 <span class="arithmatex">\(m\)</span> ,则可根据下图所示的方法实现各种操作。</p>
<ul>
<li><strong>添加边</strong>:在顶点对应链表的末尾添加边即可,使用 <span class="arithmatex">\(O(1)\)</span> 时间。因为是无向图,所以需要同时添加两个方向的边。</li>
<li><strong>删除边</strong>:在顶点对应链表中查找并删除指定边,使用 <span class="arithmatex">\(O(m)\)</span> 时间。在无向图中,需要同时删除两个方向的边。</li>
@@ -5499,7 +5499,7 @@
</div>
</div>
<h2 id="923">9.2.3 &nbsp; 效率对比<a class="headerlink" href="#923" title="Permanent link">&para;</a></h2>
<p>设图中共有 <span class="arithmatex">\(n\)</span> 个顶点和 <span class="arithmatex">\(m\)</span> 条边,下表邻接矩阵和邻接表的时间和空间效率对比</p>
<p>设图中共有 <span class="arithmatex">\(n\)</span> 个顶点和 <span class="arithmatex">\(m\)</span> 条边,下表对比了邻接矩阵和邻接表的时间和空间效率。</p>
<p align="center"> 表:邻接矩阵与邻接表对比 </p>
<div class="center-table">