This commit is contained in:
krahets
2023-08-27 23:41:10 +08:00
parent 8c9cf3f087
commit 016f13d882
66 changed files with 262 additions and 270 deletions

View File

@ -3524,7 +3524,7 @@
<h1 id="81">8.1 &nbsp;<a class="headerlink" href="#81" title="Permanent link">&para;</a></h1>
<p>「堆 heap」是一种满足特定条件的完全二叉树主要可分为图 8-1 所示的两种类型</p>
<p>「堆 heap」是一种满足特定条件的完全二叉树主要可分为图 8-1 所示的两种类型</p>
<ul>
<li>「大顶堆 max heap」任意节点的值 <span class="arithmatex">\(\geq\)</span> 其子节点的值。</li>
<li>「小顶堆 min heap」任意节点的值 <span class="arithmatex">\(\leq\)</span> 其子节点的值。</li>
@ -3532,7 +3532,7 @@
<p><img alt="小顶堆与大顶堆" src="../heap.assets/min_heap_and_max_heap.png" /></p>
<p align="center"> 图 8-1 &nbsp; 小顶堆与大顶堆 </p>
<p>堆作为完全二叉树的一个特例,具有以下特性</p>
<p>堆作为完全二叉树的一个特例,具有以下特性</p>
<ul>
<li>最底层节点靠左填充,其他层的节点都被填满。</li>
<li>我们将二叉树的根节点称为“堆顶”,将底层最靠右的节点称为“堆底”。</li>
@ -4501,7 +4501,7 @@
</div>
</div>
<h3 id="4">4. &nbsp; 堆顶元素出堆<a class="headerlink" href="#4" title="Permanent link">&para;</a></h3>
<p>堆顶元素是二叉树的根节点,即列表首元素。如果我们直接从列表中删除首元素,那么二叉树中所有节点的索引都会发生变化,这将使得后续使用堆化修复变得困难。为了尽量减少元素索引的变动,我们采取以下操作步骤</p>
<p>堆顶元素是二叉树的根节点,即列表首元素。如果我们直接从列表中删除首元素,那么二叉树中所有节点的索引都会发生变化,这将使得后续使用堆化修复变得困难。为了尽量减少元素索引的变动,我们采取以下操作步骤</p>
<ol>
<li>交换堆顶元素与堆底元素(即交换根节点与最右叶节点)。</li>
<li>交换完成后,将堆底从列表中删除(注意,由于已经交换,实际上删除的是原来的堆顶元素)。</li>