This commit is contained in:
krahets
2023-10-23 04:56:26 +08:00
parent 1ab075904f
commit f0d798173f
6 changed files with 23 additions and 6 deletions

View File

@@ -4466,7 +4466,7 @@
<li>为了方便添加与删除顶点,以及简化代码,我们使用列表(动态数组)来代替链表。</li>
<li>使用哈希表来存储邻接表,<code>key</code> 为顶点实例,<code>value</code> 为该顶点的邻接顶点列表(链表)。</li>
</ul>
<p>另外,我们在邻接表中使用 <code>Vertex</code> 类来表示顶点。这是因为如果与邻接矩阵一样用列表索引来区分不同顶点那么假设要删除索引为 <span class="arithmatex">\(i\)</span> 的顶点,则需遍历整个邻接表,将所有大于 <span class="arithmatex">\(i\)</span> 的索引全部减 <span class="arithmatex">\(1\)</span> ,效率很低。而如果每个顶点都是唯一的 <code>Vertex</code> 实例,删除某一顶点之后就无须改动其他顶点了。</p>
<p>另外,我们在邻接表中使用 <code>Vertex</code> 类来表示顶点,这样做的原因是:如果与邻接矩阵一样用列表索引来区分不同顶点那么假设要删除索引为 <span class="arithmatex">\(i\)</span> 的顶点,则需遍历整个邻接表,将所有大于 <span class="arithmatex">\(i\)</span> 的索引全部减 <span class="arithmatex">\(1\)</span> ,效率很低。而如果每个顶点都是唯一的 <code>Vertex</code> 实例,删除某一顶点之后就无须改动其他顶点了。</p>
<div class="tabbed-set tabbed-alternate" data-tabs="4:12"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><input id="__tabbed_4_3" name="__tabbed_4" type="radio" /><input id="__tabbed_4_4" name="__tabbed_4" type="radio" /><input id="__tabbed_4_5" name="__tabbed_4" type="radio" /><input id="__tabbed_4_6" name="__tabbed_4" type="radio" /><input id="__tabbed_4_7" name="__tabbed_4" type="radio" /><input id="__tabbed_4_8" name="__tabbed_4" type="radio" /><input id="__tabbed_4_9" name="__tabbed_4" type="radio" /><input id="__tabbed_4_10" name="__tabbed_4" type="radio" /><input id="__tabbed_4_11" name="__tabbed_4" type="radio" /><input id="__tabbed_4_12" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">Python</label><label for="__tabbed_4_2">C++</label><label for="__tabbed_4_3">Java</label><label for="__tabbed_4_4">C#</label><label for="__tabbed_4_5">Go</label><label for="__tabbed_4_6">Swift</label><label for="__tabbed_4_7">JS</label><label for="__tabbed_4_8">TS</label><label for="__tabbed_4_9">Dart</label><label for="__tabbed_4_10">Rust</label><label for="__tabbed_4_11">C</label><label for="__tabbed_4_12">Zig</label></div>
<div class="tabbed-content">
<div class="tabbed-block">