This commit is contained in:
krahets
2023-04-17 18:24:20 +08:00
parent ade482858a
commit 261332f372
26 changed files with 398 additions and 853 deletions
+6 -6
View File
@@ -2,7 +2,7 @@
comments: true
---
# 7.1.   二叉树
# 8.1.   二叉树
「二叉树 Binary Tree」是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含一个「值」和两个「指针」。
@@ -135,7 +135,7 @@ comments: true
<p align="center"> Fig. 父节点、子节点、子树 </p>
## 7.1.1. &nbsp; 二叉树常见术语
## 8.1.1. &nbsp; 二叉树常见术语
二叉树涉及的术语较多,建议尽量理解并记住。
@@ -156,7 +156,7 @@ comments: true
请注意,我们通常将「高度」和「深度」定义为“走过边的数量”,但有些题目或教材可能会将其定义为“走过节点的数量”。在这种情况下,高度和深度都需要加 1 。
## 7.1.2. &nbsp; 二叉树基本操作
## 8.1.2. &nbsp; 二叉树基本操作
**初始化二叉树**。与链表类似,首先初始化节点,然后构建引用指向(即指针)。
@@ -422,7 +422,7 @@ comments: true
需要注意的是,插入节点可能会改变二叉树的原有逻辑结构,而删除节点通常意味着删除该节点及其所有子树。因此,在二叉树中,插入与删除操作通常是由一套操作配合完成的,以实现有实际意义的操作。
## 7.1.3. &nbsp; 常见二叉树类型
## 8.1.3. &nbsp; 常见二叉树类型
### 完美二叉树
@@ -460,7 +460,7 @@ comments: true
<p align="center"> Fig. 平衡二叉树 </p>
## 7.1.4. &nbsp; 二叉树的退化
## 8.1.4. &nbsp; 二叉树的退化
当二叉树的每层节点都被填满时,达到「完美二叉树」;而当所有节点都偏向一侧时,二叉树退化为「链表」。
@@ -484,7 +484,7 @@ comments: true
</div>
## 7.1.5. &nbsp; 二叉树表示方式 *
## 8.1.5. &nbsp; 二叉树表示方式 *
我们通常使用二叉树的「链表表示」,即存储单位为节点 `TreeNode` ,节点之间通过指针相连接。本文前述示例代码展示了二叉树在链表表示下的各项基本操作。