Use underline format for the technical terms (#1213)

* Use underline format for the technical terms

* Bug fixes
This commit is contained in:
Yudong Jin
2024-04-03 03:52:17 +08:00
committed by GitHub
parent 06068927cd
commit 2b1a98fb61
42 changed files with 105 additions and 105 deletions

View File

@@ -1,9 +1,9 @@
# 堆
「堆 heap」是一种满足特定条件的完全二叉树,主要可分为两种类型,如下图所示。
<u>堆heap</u>是一种满足特定条件的完全二叉树,主要可分为两种类型,如下图所示。
- 小顶堆 min heap:任意节点的值 $\leq$ 其子节点的值。
- 大顶堆 max heap:任意节点的值 $\geq$ 其子节点的值。
- <u>小顶堆min heap</u>:任意节点的值 $\leq$ 其子节点的值。
- <u>大顶堆max heap</u>:任意节点的值 $\geq$ 其子节点的值。
![小顶堆与大顶堆](heap.assets/min_heap_and_max_heap.png)
@@ -15,7 +15,7 @@
## 堆的常用操作
需要指出的是,许多编程语言提供的是优先队列 priority queue,这是一种抽象的数据结构,定义为具有优先级排序的队列。
需要指出的是,许多编程语言提供的是<u>优先队列priority queue</u>,这是一种抽象的数据结构,定义为具有优先级排序的队列。
实际上,**堆通常用于实现优先队列,大顶堆相当于元素按从大到小的顺序出队的优先队列**。从使用角度来看,我们可以将“优先队列”和“堆”看作等价的数据结构。因此,本书对两者不做特别区分,统一称作“堆”。
@@ -448,7 +448,7 @@
### 元素入堆
给定元素 `val` ,我们首先将其添加到堆底。添加之后,由于 `val` 可能大于堆中其他元素,堆的成立条件可能已被破坏,**因此需要修复从插入节点到根节点的路径上的各个节点**,这个操作被称为堆化 heapify
给定元素 `val` ,我们首先将其添加到堆底。添加之后,由于 `val` 可能大于堆中其他元素,堆的成立条件可能已被破坏,**因此需要修复从插入节点到根节点的路径上的各个节点**,这个操作被称为<u>堆化heapify</u>
考虑从入堆节点开始,**从底至顶执行堆化**。如下图所示,我们比较插入节点与其父节点的值,如果插入节点更大,则将它们交换。然后继续执行此操作,从底至顶修复堆中的各个节点,直至越过根节点或遇到无须交换的节点时结束。