This commit is contained in:
krahets
2023-05-21 19:29:51 +08:00
parent 2adbd1b856
commit 61055d21bd
83 changed files with 11043 additions and 13422 deletions
+207 -246
View File
@@ -25,7 +25,7 @@
<title>8.5.   AVL 树 * - Hello 算法</title>
<title>7.5.   AVL 树 * - Hello 算法</title>
@@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#85-avl" class="md-skip">
<a href="#75-avl" class="md-skip">
跳转至
</a>
@@ -113,7 +113,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
8.5. &nbsp; AVL 树 *
7.5. &nbsp; AVL 树 *
</span>
</div>
@@ -865,90 +865,19 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. &nbsp; &nbsp; 二分查找
6. &nbsp; &nbsp; 散列表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
6. &nbsp; &nbsp; 二分查找
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../chapter_binary_search/binary_search/" class="md-nav__link">
6.1. &nbsp; 二分查找
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_binary_search/binary_search_edge/" class="md-nav__link">
6.2. &nbsp; 二分查找边界
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 散列表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
7. &nbsp; &nbsp; 散列表
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -959,7 +888,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
7.1. &nbsp; 哈希表
6.1. &nbsp; 哈希表
</a>
</li>
@@ -973,7 +902,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
7.2. &nbsp; 哈希冲突处理
6.2. &nbsp; 哈希冲突处理
</a>
</li>
@@ -987,7 +916,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
7.3. &nbsp; 小结
6.3. &nbsp; 小结
</a>
</li>
@@ -1017,7 +946,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked>
@@ -1035,15 +964,15 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. &nbsp; &nbsp;
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_9">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
8. &nbsp; &nbsp;
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1054,7 +983,7 @@
<li class="md-nav__item">
<a href="../binary_tree/" class="md-nav__link">
8.1. &nbsp; 二叉树
7.1. &nbsp; 二叉树
</a>
</li>
@@ -1068,7 +997,7 @@
<li class="md-nav__item">
<a href="../binary_tree_traversal/" class="md-nav__link">
8.2. &nbsp; 二叉树遍历
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -1082,7 +1011,7 @@
<li class="md-nav__item">
<a href="../array_representation_of_tree/" class="md-nav__link">
8.3. &nbsp; 二叉树数组表示
7.3. &nbsp; 二叉树数组表示
</a>
</li>
@@ -1096,7 +1025,7 @@
<li class="md-nav__item">
<a href="../binary_search_tree/" class="md-nav__link">
8.4. &nbsp; 二叉搜索树
7.4. &nbsp; 二叉搜索树
</a>
</li>
@@ -1119,12 +1048,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
8.5. &nbsp; AVL 树 *
7.5. &nbsp; AVL 树 *
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
8.5. &nbsp; AVL 树 *
7.5. &nbsp; AVL 树 *
</a>
@@ -1143,11 +1072,11 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#851-avl" class="md-nav__link">
8.5.1. &nbsp; AVL 树常见术语
<a href="#751-avl" class="md-nav__link">
7.5.1. &nbsp; AVL 树常见术语
</a>
<nav class="md-nav" aria-label="8.5.1. &nbsp; AVL 树常见术语">
<nav class="md-nav" aria-label="7.5.1. &nbsp; AVL 树常见术语">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -1170,11 +1099,11 @@
</li>
<li class="md-nav__item">
<a href="#852-avl" class="md-nav__link">
8.5.2. &nbsp; AVL 树旋转
<a href="#752-avl" class="md-nav__link">
7.5.2. &nbsp; AVL 树旋转
</a>
<nav class="md-nav" aria-label="8.5.2. &nbsp; AVL 树旋转">
<nav class="md-nav" aria-label="7.5.2. &nbsp; AVL 树旋转">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -1218,11 +1147,11 @@
</li>
<li class="md-nav__item">
<a href="#853-avl" class="md-nav__link">
8.5.3. &nbsp; AVL 树常用操作
<a href="#753-avl" class="md-nav__link">
7.5.3. &nbsp; AVL 树常用操作
</a>
<nav class="md-nav" aria-label="8.5.3. &nbsp; AVL 树常用操作">
<nav class="md-nav" aria-label="7.5.3. &nbsp; AVL 树常用操作">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -1252,8 +1181,8 @@
</li>
<li class="md-nav__item">
<a href="#854-avl" class="md-nav__link">
8.5.4. &nbsp; AVL 树典型应用
<a href="#754-avl" class="md-nav__link">
7.5.4. &nbsp; AVL 树典型应用
</a>
</li>
@@ -1274,7 +1203,94 @@
<li class="md-nav__item">
<a href="../summary/" class="md-nav__link">
8.6. &nbsp; 小结
7.6. &nbsp; 小结
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
8.2. &nbsp; 建堆操作 *
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_heap/summary/" class="md-nav__link">
8.3. &nbsp; 小结
</a>
</li>
@@ -1312,17 +1328,19 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. &nbsp; &nbsp;
9. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
9. &nbsp; &nbsp;
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1332,8 +1350,8 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
9.1. &nbsp;
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;
</a>
</li>
@@ -1346,8 +1364,8 @@
<li class="md-nav__item">
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
9.2. &nbsp; 建堆操作 *
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1360,8 +1378,22 @@
<li class="md-nav__item">
<a href="../../chapter_heap/summary/" class="md-nav__link">
9.3. &nbsp; 小结
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. &nbsp; 图的遍历
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
9.4. &nbsp; 小结
</a>
</li>
@@ -1401,17 +1433,19 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. &nbsp; &nbsp;
10. &nbsp; &nbsp; 搜索算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
10. &nbsp; &nbsp;
10. &nbsp; &nbsp; 搜索算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1421,8 +1455,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
10.1. &nbsp;
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.1. &nbsp; 二分查找(New
</a>
</li>
@@ -1435,8 +1469,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
10.2. &nbsp; 图基础操作
<a href="../../chapter_searching/binary_search_edge/" class="md-nav__link">
10.2. &nbsp; 二分查找边界(New
</a>
</li>
@@ -1449,8 +1483,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
10.3. &nbsp; 图的遍历
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
10.3. &nbsp; 哈希优化策略
</a>
</li>
@@ -1463,8 +1497,22 @@
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
10.4. &nbsp; 小结
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
10.4. &nbsp; 重识搜索算法
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.5. &nbsp; 小结
</a>
</li>
@@ -1688,14 +1736,14 @@
<label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
12. &nbsp; &nbsp; 搜索算法
12. &nbsp; &nbsp; 回溯算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
12. &nbsp; &nbsp; 搜索算法
12. &nbsp; &nbsp; 回溯算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1705,8 +1753,8 @@
<li class="md-nav__item">
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
12.1. &nbsp; 搜索算法(New
<a href="../../chapter_backtracking/backtracking_algorithm/" class="md-nav__link">
12.1. &nbsp; 回溯算法(New
</a>
</li>
@@ -1719,8 +1767,8 @@
<li class="md-nav__item">
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
12.2. &nbsp; 哈希优化策略
<a href="../../chapter_backtracking/permutations_problem/" class="md-nav__link">
12.2. &nbsp; 全排列问题(New
</a>
</li>
@@ -1733,8 +1781,8 @@
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
12.3. &nbsp; 小结
<a href="../../chapter_backtracking/n_queens_problem/" class="md-nav__link">
12.3. &nbsp; N 皇后问题(New
</a>
</li>
@@ -1770,19 +1818,17 @@
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
13. &nbsp; &nbsp; 回溯算法
13. &nbsp; &nbsp; 附录
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
13. &nbsp; &nbsp; 回溯算法
13. &nbsp; &nbsp; 附录
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1792,8 +1838,8 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/backtracking_algorithm/" class="md-nav__link">
13.1. &nbsp; 回溯算法(New
<a href="../../chapter_appendix/installation/" class="md-nav__link">
13.1. &nbsp; 编程环境安装
</a>
</li>
@@ -1806,22 +1852,8 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/permutations_problem/" class="md-nav__link">
13.2. &nbsp; 全排列问题(New
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_backtracking/n_queens_problem/" class="md-nav__link">
13.3. &nbsp; N 皇后问题(New
<a href="../../chapter_appendix/contribution/" class="md-nav__link">
13.2. &nbsp; 一起参与创作
</a>
</li>
@@ -1854,77 +1886,6 @@
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
14. &nbsp; &nbsp; 附录
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
14. &nbsp; &nbsp; 附录
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../chapter_appendix/installation/" class="md-nav__link">
14.1. &nbsp; 编程环境安装
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_appendix/contribution/" class="md-nav__link">
14.2. &nbsp; 一起参与创作
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
@@ -1937,8 +1898,8 @@
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
参考文献
</label>
@@ -1979,11 +1940,11 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#851-avl" class="md-nav__link">
8.5.1. &nbsp; AVL 树常见术语
<a href="#751-avl" class="md-nav__link">
7.5.1. &nbsp; AVL 树常见术语
</a>
<nav class="md-nav" aria-label="8.5.1. &nbsp; AVL 树常见术语">
<nav class="md-nav" aria-label="7.5.1. &nbsp; AVL 树常见术语">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -2006,11 +1967,11 @@
</li>
<li class="md-nav__item">
<a href="#852-avl" class="md-nav__link">
8.5.2. &nbsp; AVL 树旋转
<a href="#752-avl" class="md-nav__link">
7.5.2. &nbsp; AVL 树旋转
</a>
<nav class="md-nav" aria-label="8.5.2. &nbsp; AVL 树旋转">
<nav class="md-nav" aria-label="7.5.2. &nbsp; AVL 树旋转">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -2054,11 +2015,11 @@
</li>
<li class="md-nav__item">
<a href="#853-avl" class="md-nav__link">
8.5.3. &nbsp; AVL 树常用操作
<a href="#753-avl" class="md-nav__link">
7.5.3. &nbsp; AVL 树常用操作
</a>
<nav class="md-nav" aria-label="8.5.3. &nbsp; AVL 树常用操作">
<nav class="md-nav" aria-label="7.5.3. &nbsp; AVL 树常用操作">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -2088,8 +2049,8 @@
</li>
<li class="md-nav__item">
<a href="#854-avl" class="md-nav__link">
8.5.4. &nbsp; AVL 树典型应用
<a href="#754-avl" class="md-nav__link">
7.5.4. &nbsp; AVL 树典型应用
</a>
</li>
@@ -2117,7 +2078,7 @@
<h1 id="85-avl">8.5. &nbsp; AVL 树 *<a class="headerlink" href="#85-avl" title="Permanent link">&para;</a></h1>
<h1 id="75-avl">7.5. &nbsp; AVL 树 *<a class="headerlink" href="#75-avl" title="Permanent link">&para;</a></h1>
<p>在二叉搜索树章节中,我们提到了在多次插入和删除操作后,二叉搜索树可能退化为链表。这种情况下,所有操作的时间复杂度将从 <span class="arithmatex">\(O(\log n)\)</span> 恶化为 <span class="arithmatex">\(O(n)\)</span></p>
<p>如下图所示,经过两次删除节点操作,这个二叉搜索树便会退化为链表。</p>
<p><img alt="AVL 树在删除节点后发生退化" src="../avl_tree.assets/avltree_degradation_from_removing_node.png" /></p>
@@ -2128,7 +2089,7 @@
<p align="center"> Fig. AVL 树在插入节点后发生退化 </p>
<p>G. M. Adelson-Velsky 和 E. M. Landis 在其 1962 年发表的论文 "An algorithm for the organization of information" 中提出了「AVL 树」。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树不会退化,从而使得各种操作的时间复杂度保持在 <span class="arithmatex">\(O(\log n)\)</span> 级别。换句话说,在需要频繁进行增删查改操作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。</p>
<h2 id="851-avl">8.5.1. &nbsp; AVL 树常见术语<a class="headerlink" href="#851-avl" title="Permanent link">&para;</a></h2>
<h2 id="751-avl">7.5.1. &nbsp; AVL 树常见术语<a class="headerlink" href="#751-avl" title="Permanent link">&para;</a></h2>
<p>「AVL 树」既是二叉搜索树也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜索树」。</p>
<h3 id="_1">节点高度<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h3>
<p>在操作 AVL 树时,我们需要获取节点的高度,因此需要为 AVL 树的节点类添加 <code>height</code> 变量。</p>
@@ -2547,7 +2508,7 @@
<p class="admonition-title">Note</p>
<p>设平衡因子为 <span class="arithmatex">\(f\)</span> ,则一棵 AVL 树的任意节点的平衡因子皆满足 <span class="arithmatex">\(-1 \le f \le 1\)</span></p>
</div>
<h2 id="852-avl">8.5.2. &nbsp; AVL 树旋转<a class="headerlink" href="#852-avl" title="Permanent link">&para;</a></h2>
<h2 id="752-avl">7.5.2. &nbsp; AVL 树旋转<a class="headerlink" href="#752-avl" title="Permanent link">&para;</a></h2>
<p>AVL 树的特点在于「旋转 Rotation」操作,它能够在不影响二叉树的中序遍历序列的前提下,使失衡节点重新恢复平衡。换句话说,<strong>旋转操作既能保持树的「二叉搜索树」属性,也能使树重新变为「平衡二叉树」</strong></p>
<p>我们将平衡因子绝对值 <span class="arithmatex">\(&gt; 1\)</span> 的节点称为「失衡节点」。根据节点失衡情况的不同,旋转操作分为四种:右旋、左旋、先右旋后左旋、先左旋后右旋。下面我们将详细介绍这些旋转操作。</p>
<h3 id="_3">右旋<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h3>
@@ -3281,7 +3242,7 @@
</div>
</div>
</div>
<h2 id="853-avl">8.5.3. &nbsp; AVL 树常用操作<a class="headerlink" href="#853-avl" title="Permanent link">&para;</a></h2>
<h2 id="753-avl">7.5.3. &nbsp; AVL 树常用操作<a class="headerlink" href="#753-avl" title="Permanent link">&para;</a></h2>
<h3 id="_8">插入节点<a class="headerlink" href="#_8" title="Permanent link">&para;</a></h3>
<p>「AVL 树」的节点插入操作与「二叉搜索树」在主体上类似。唯一的区别在于,在 AVL 树中插入节点后,从该节点到根节点的路径上可能会出现一系列失衡节点。因此,<strong>我们需要从这个节点开始,自底向上执行旋转操作,使所有失衡节点恢复平衡</strong></p>
<div class="tabbed-set tabbed-alternate" data-tabs="8:10"><input checked="checked" id="__tabbed_8_1" name="__tabbed_8" type="radio" /><input id="__tabbed_8_2" name="__tabbed_8" type="radio" /><input id="__tabbed_8_3" name="__tabbed_8" type="radio" /><input id="__tabbed_8_4" name="__tabbed_8" type="radio" /><input id="__tabbed_8_5" name="__tabbed_8" type="radio" /><input id="__tabbed_8_6" name="__tabbed_8" type="radio" /><input id="__tabbed_8_7" name="__tabbed_8" type="radio" /><input id="__tabbed_8_8" name="__tabbed_8" type="radio" /><input id="__tabbed_8_9" name="__tabbed_8" type="radio" /><input id="__tabbed_8_10" name="__tabbed_8" type="radio" /><div class="tabbed-labels"><label for="__tabbed_8_1">Java</label><label for="__tabbed_8_2">C++</label><label for="__tabbed_8_3">Python</label><label for="__tabbed_8_4">Go</label><label for="__tabbed_8_5">JavaScript</label><label for="__tabbed_8_6">TypeScript</label><label for="__tabbed_8_7">C</label><label for="__tabbed_8_8">C#</label><label for="__tabbed_8_9">Swift</label><label for="__tabbed_8_10">Zig</label></div>
@@ -3992,7 +3953,7 @@
</div>
<h3 id="_10">查找节点<a class="headerlink" href="#_10" title="Permanent link">&para;</a></h3>
<p>AVL 树的节点查找操作与二叉搜索树一致,在此不再赘述。</p>
<h2 id="854-avl">8.5.4. &nbsp; AVL 树典型应用<a class="headerlink" href="#854-avl" title="Permanent link">&para;</a></h2>
<h2 id="754-avl">7.5.4. &nbsp; AVL 树典型应用<a class="headerlink" href="#754-avl" title="Permanent link">&para;</a></h2>
<ul>
<li>组织和存储大型数据,适用于高频查找、低频增删的场景;</li>
<li>用于构建数据库中的索引系统;</li>
@@ -4078,7 +4039,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../binary_search_tree/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 8.4. &amp;nbsp; 二叉搜索树" rel="prev">
<a href="../binary_search_tree/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 7.4. &amp;nbsp; 二叉搜索树" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
@@ -4087,20 +4048,20 @@
上一页
</span>
<div class="md-ellipsis">
8.4. &nbsp; 二叉搜索树
7.4. &nbsp; 二叉搜索树
</div>
</div>
</a>
<a href="../summary/" class="md-footer__link md-footer__link--next" aria-label="下一页: 8.6. &amp;nbsp; 小结" rel="next">
<a href="../summary/" class="md-footer__link md-footer__link--next" aria-label="下一页: 7.6. &amp;nbsp; 小结" rel="next">
<div class="md-footer__title">
<span class="md-footer__direction">
下一页
</span>
<div class="md-ellipsis">
8.6. &nbsp; 小结
7.6. &nbsp; 小结
</div>
</div>
<div class="md-footer__button md-icon">