This commit is contained in:
krahets
2023-02-26 18:17:57 +08:00
parent 80f9b68963
commit 8e0872643c
31 changed files with 99 additions and 175 deletions
+6 -6
View File
@@ -9,7 +9,7 @@ comments: true
1. 对于根结点,左子树中所有结点的值 $<$ 根结点的值 $<$ 右子树中所有结点的值;
2. 任意结点的左子树和右子树也是二叉搜索树,即也满足条件 `1.`
![binary_search_tree](binary_search_tree.assets/binary_search_tree.png)
![二叉搜索树](binary_search_tree.assets/binary_search_tree.png)
## 7.3.1. &nbsp; 二叉搜索树的操作
@@ -247,7 +247,7 @@ comments: true
二叉搜索树不允许存在重复结点,否则将会违背其定义。因此若待插入结点在树中已经存在,则不执行插入,直接返回即可。
![bst_insert](binary_search_tree.assets/bst_insert.png)
![在二叉搜索树中插入结点](binary_search_tree.assets/bst_insert.png)
=== "Java"
@@ -549,11 +549,11 @@ comments: true
**当待删除结点的子结点数量 $= 0$ 时**,表明待删除结点是叶结点,直接删除即可。
![bst_remove_case1](binary_search_tree.assets/bst_remove_case1.png)
![在二叉搜索树中删除结点(度为 0](binary_search_tree.assets/bst_remove_case1.png)
**当待删除结点的子结点数量 $= 1$ 时**,将待删除结点替换为其子结点即可。
![bst_remove_case2](binary_search_tree.assets/bst_remove_case2.png)
![在二叉搜索树中删除结点(度为 1](binary_search_tree.assets/bst_remove_case2.png)
**当待删除结点的子结点数量 $= 2$ 时**,删除操作分为三步:
@@ -1135,7 +1135,7 @@ comments: true
借助中序遍历升序的性质,我们在二叉搜索树中获取有序数据仅需 $O(n)$ 时间,而无需额外排序,非常高效。
![bst_inorder_traversal](binary_search_tree.assets/bst_inorder_traversal.png)
![二叉搜索树的中序遍历序列](binary_search_tree.assets/bst_inorder_traversal.png)
## 7.3.2. &nbsp; 二叉搜索树的效率
@@ -1176,7 +1176,7 @@ comments: true
在实际应用中,如何保持二叉搜索树的平衡,也是一个需要重要考虑的问题。
![bst_degradation](binary_search_tree.assets/bst_degradation.png)
![二叉搜索树的平衡与退化](binary_search_tree.assets/bst_degradation.png)
## 7.3.4. &nbsp; 二叉搜索树常见应用