This commit is contained in:
krahets
2023-02-24 18:45:27 +08:00
parent 8f74aa1fad
commit ed43cdf179
44 changed files with 168 additions and 168 deletions

View File

@@ -2,7 +2,7 @@
comments: true
---
# 7.1. 二叉树
# 7.1.   二叉树
「二叉树 Binary Tree」是一种非线性数据结构代表着祖先与后代之间的派生关系体现着“一分为二”的分治逻辑。类似于链表二叉树也是以结点为单位存储的结点包含「值」和两个「指针」。
@@ -135,7 +135,7 @@ comments: true
<p align="center"> Fig. 子结点与子树 </p>
## 7.1.1. 二叉树常见术语
## 7.1.1. &nbsp; 二叉树常见术语
二叉树的术语较多,建议尽量理解并记住。后续可能遗忘,可以在需要使用时回来查看确认。
@@ -156,7 +156,7 @@ comments: true
值得注意,我们通常将「高度」和「深度」定义为“走过边的数量”,而有些题目或教材会将其定义为“走过结点的数量”,此时高度或深度都需要 + 1 。
## 7.1.2. 二叉树基本操作
## 7.1.2. &nbsp; 二叉树基本操作
**初始化二叉树**。与链表类似,先初始化结点,再构建引用指向(即指针)。
@@ -422,7 +422,7 @@ comments: true
插入结点会改变二叉树的原有逻辑结构,删除结点往往意味着删除了该结点的所有子树。因此,二叉树中的插入与删除一般都是由一套操作配合完成的,这样才能实现有意义的操作。
## 7.1.3. 常见二叉树类型
## 7.1.3. &nbsp; 常见二叉树类型
### 完美二叉树
@@ -454,7 +454,7 @@ comments: true
![balanced_binary_tree](binary_tree.assets/balanced_binary_tree.png)
## 7.1.4. 二叉树的退化
## 7.1.4. &nbsp; 二叉树的退化
当二叉树的每层的结点都被填满时,达到「完美二叉树」;而当所有结点都偏向一边时,二叉树退化为「链表」。
@@ -478,7 +478,7 @@ comments: true
</div>
## 7.1.5. 二叉树表示方式 *
## 7.1.5. &nbsp; 二叉树表示方式 *
我们一般使用二叉树的「链表表示」,即存储单位为结点 `TreeNode` ,结点之间通过指针(引用)相连接。本文前述示例代码展示了二叉树在链表表示下的各项基本操作。