mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-14 11:36:08 +08:00
deploy
This commit is contained in:
@ -1637,6 +1637,8 @@
|
||||
<h2 id="622">6.2.2. 链式地址<a class="headerlink" href="#622" title="Permanent link">¶</a></h2>
|
||||
<p>在原始哈希表中,桶内的每个地址只能存储一个元素(即键值对)。<strong>考虑将单个元素转化成一个链表,将所有冲突元素都存储在一个链表中</strong>。</p>
|
||||
<p><img alt="链式地址" src="../hash_collision.assets/hash_collision_chaining.png" /></p>
|
||||
<p align="center"> Fig. 链式地址 </p>
|
||||
|
||||
<p>链式地址下,哈希表操作方法为:</p>
|
||||
<ul>
|
||||
<li><strong>查询元素</strong>:先将 key 输入到哈希函数得到桶内索引,即可访问链表头结点,再通过遍历链表查找对应 value 。</li>
|
||||
@ -1660,6 +1662,8 @@
|
||||
<li>若遇到空位,则说明查找键值对不在哈希表中;</li>
|
||||
</ol>
|
||||
<p><img alt="线性探测" src="../hash_collision.assets/hash_collision_linear_probing.png" /></p>
|
||||
<p align="center"> Fig. 线性探测 </p>
|
||||
|
||||
<p>线性探测存在以下缺陷:</p>
|
||||
<ul>
|
||||
<li><strong>不能直接删除元素</strong>。删除元素会导致桶内出现一个空位,在查找其他元素时,该空位有可能导致程序认为元素不存在(即上述第 <code>2.</code> 种情况)。因此需要借助一个标志位来标记删除元素。</li>
|
||||
|
Reference in New Issue
Block a user