This commit is contained in:
krahets
2023-08-27 23:40:56 +08:00
parent 48980ddf28
commit df0f7d3be1
64 changed files with 255 additions and 261 deletions
+3 -3
View File
@@ -4,7 +4,7 @@ comments: true
# 8.1   堆
「堆 heap」是一种满足特定条件的完全二叉树,主要可分为图 8-1 所示的两种类型
「堆 heap」是一种满足特定条件的完全二叉树,主要可分为图 8-1 所示的两种类型
- 「大顶堆 max heap」:任意节点的值 $\geq$ 其子节点的值。
- 「小顶堆 min heap」:任意节点的值 $\leq$ 其子节点的值。
@@ -13,7 +13,7 @@ comments: true
<p align="center"> 图 8-1 &nbsp; 小顶堆与大顶堆 </p>
堆作为完全二叉树的一个特例,具有以下特性
堆作为完全二叉树的一个特例,具有以下特性
- 最底层节点靠左填充,其他层的节点都被填满。
- 我们将二叉树的根节点称为“堆顶”,将底层最靠右的节点称为“堆底”。
@@ -1052,7 +1052,7 @@ comments: true
### 4. &nbsp; 堆顶元素出堆
堆顶元素是二叉树的根节点,即列表首元素。如果我们直接从列表中删除首元素,那么二叉树中所有节点的索引都会发生变化,这将使得后续使用堆化修复变得困难。为了尽量减少元素索引的变动,我们采取以下操作步骤
堆顶元素是二叉树的根节点,即列表首元素。如果我们直接从列表中删除首元素,那么二叉树中所有节点的索引都会发生变化,这将使得后续使用堆化修复变得困难。为了尽量减少元素索引的变动,我们采取以下操作步骤
1. 交换堆顶元素与堆底元素(即交换根节点与最右叶节点)。
2. 交换完成后,将堆底从列表中删除(注意,由于已经交换,实际上删除的是原来的堆顶元素)。