This commit is contained in:
krahets
2024-04-03 04:41:32 +08:00
parent f95548a8c4
commit f680a185b5
168 changed files with 18077 additions and 8236 deletions

View File

@@ -334,6 +334,63 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__container">
<a href="../../chapter_hello_algo/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m13.13 22.19-1.63-3.83c1.57-.58 3.04-1.36 4.4-2.27l-2.77 6.1M5.64 12.5l-3.83-1.63 6.1-2.77C7 9.46 6.22 10.93 5.64 12.5M19.22 4c.28 0 .53 0 .74.05.17 1.39-.02 4.25-3.3 7.53-1.7 1.71-3.73 3.02-6.01 3.89l-2.15-2.1c.92-2.31 2.23-4.34 3.92-6.03C15.18 4.58 17.64 4 19.22 4m0-2c-1.98 0-4.98.69-8.22 3.93-2.19 2.19-3.5 4.6-4.35 6.71-.28.75-.09 1.57.46 2.13l2.13 2.12c.38.38.89.61 1.42.61.23 0 .47-.06.7-.15A19.1 19.1 0 0 0 18.07 13c5.66-5.66 3.54-10.61 3.54-10.61S20.7 2 19.22 2m-4.68 7.46c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0c.77.78.78 2.05 0 2.83-.78.78-2.05.78-2.83 0m-5.66 7.07-1.41-1.41 1.41 1.41M6.24 22l3.64-3.64c-.34-.09-.67-.24-.97-.45L4.83 22h1.41M2 22h1.41l4.77-4.76-1.42-1.41L2 20.59V22m0-2.83 4.09-4.08c-.21-.3-.36-.62-.45-.97L2 17.76v1.41Z"/></svg>
<span class="md-ellipsis">
</span>
</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
<ul class="md-nav__list" data-md-scrollfix>
</ul>
</nav>
</li>
@@ -349,7 +406,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
@@ -367,14 +424,14 @@
</a>
<label class="md-nav__link " for="__nav_1" id="__nav_1_label" tabindex="0">
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
第 0 章 &nbsp; 前言
</label>
@@ -480,7 +537,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
@@ -498,14 +555,14 @@
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
第 1 章 &nbsp; 初识算法
</label>
@@ -615,7 +672,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
@@ -633,14 +690,14 @@
</a>
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
第 2 章 &nbsp; 复杂度分析
</label>
@@ -792,7 +849,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
@@ -810,14 +867,14 @@
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
第 3 章 &nbsp; 数据结构
</label>
@@ -969,7 +1026,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
@@ -987,14 +1044,14 @@
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
第 4 章 &nbsp; 数组与链表
</label>
@@ -1152,7 +1209,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
@@ -1170,14 +1227,14 @@
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0">
<label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<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>
第 5 章 &nbsp; 栈与队列
</label>
@@ -1306,7 +1363,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
@@ -1324,14 +1381,14 @@
</a>
<label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<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>
第 6 章 &nbsp; 哈希表
</label>
@@ -1466,7 +1523,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" checked>
@@ -1484,14 +1541,14 @@
</a>
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
<label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_8">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
第 7 章 &nbsp;
</label>
@@ -1804,7 +1861,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
@@ -1822,14 +1879,14 @@
</a>
<label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
<label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<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>
第 8 章 &nbsp;
</label>
@@ -1958,7 +2015,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
@@ -1976,14 +2033,14 @@
</a>
<label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="0">
<label class="md-nav__link " for="__nav_11" id="__nav_11_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<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>
第 9 章 &nbsp;
</label>
@@ -2116,7 +2173,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
@@ -2134,14 +2191,14 @@
</a>
<label class="md-nav__link " for="__nav_11" id="__nav_11_label" tabindex="0">
<label class="md-nav__link " for="__nav_12" id="__nav_12_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
第 10 章 &nbsp; 搜索
</label>
@@ -2326,7 +2383,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
@@ -2344,14 +2401,14 @@
</a>
<label class="md-nav__link " for="__nav_12" id="__nav_12_label" tabindex="0">
<label class="md-nav__link " for="__nav_13" id="__nav_13_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<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>
第 11 章 &nbsp; 排序
</label>
@@ -2629,7 +2686,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
@@ -2647,14 +2704,14 @@
</a>
<label class="md-nav__link " for="__nav_13" id="__nav_13_label" tabindex="0">
<label class="md-nav__link " for="__nav_14" id="__nav_14_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_13">
<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>
第 12 章 &nbsp; 分治
</label>
@@ -2806,7 +2863,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
@@ -2824,14 +2881,14 @@
</a>
<label class="md-nav__link " for="__nav_14" id="__nav_14_label" tabindex="0">
<label class="md-nav__link " for="__nav_15" id="__nav_15_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_14">
<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>
第 13 章 &nbsp; 回溯
</label>
@@ -2987,7 +3044,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
@@ -3005,14 +3062,14 @@
</a>
<label class="md-nav__link " for="__nav_15" id="__nav_15_label" tabindex="0">
<label class="md-nav__link " for="__nav_16" id="__nav_16_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16">
<span class="md-nav__icon md-icon"></span>
第 14 章 &nbsp; 动态规划
</label>
@@ -3206,7 +3263,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
@@ -3224,14 +3281,14 @@
</a>
<label class="md-nav__link " for="__nav_16" id="__nav_16_label" tabindex="0">
<label class="md-nav__link " for="__nav_17" id="__nav_17_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</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_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_17">
<span class="md-nav__icon md-icon"></span>
第 15 章 &nbsp; 贪心
</label>
@@ -3379,7 +3436,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
@@ -3397,14 +3454,14 @@
</a>
<label class="md-nav__link " for="__nav_17" id="__nav_17_label" tabindex="0">
<label class="md-nav__link " for="__nav_18" id="__nav_18_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_17">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_18">
<span class="md-nav__icon md-icon"></span>
第 16 章 &nbsp; 附录
</label>
@@ -3504,7 +3561,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_19" >
@@ -3523,8 +3580,8 @@
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_18">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_19_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_19">
<span class="md-nav__icon md-icon"></span>
参考文献
</label>
@@ -3561,7 +3618,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_19" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_20" >
@@ -3569,7 +3626,7 @@
<a href="../../chapter_paperbook/" class="md-nav__link ">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M96 0C43 0 0 43 0 96v320c0 53 43 96 96 96h320c17.7 0 32-14.3 32-32s-14.3-32-32-32v-64c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H96zm0 384h256v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19 2-5 4.5v11l5-4.5V2M6.5 5C4.55 5 2.45 5.4 1 6.5v14.66c0 .25.25.5.5.5.1 0 .15-.07.25-.07 1.35-.65 3.3-1.09 4.75-1.09 1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.31 4.75 1.06.1.05.15.03.25.03.25 0 .5-.25.5-.5V6.5c-.6-.45-1.25-.75-2-1V19c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V6.5C10.55 5.4 8.45 5 6.5 5Z"/></svg>
<span class="md-ellipsis">
纸质书
@@ -3588,8 +3645,8 @@
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_19_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_19">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_20_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_20">
<span class="md-nav__icon md-icon"></span>
纸质书
</label>
@@ -3769,7 +3826,7 @@
<!-- Page content -->
<h1 id="71">7.1 &nbsp; 二叉树<a class="headerlink" href="#71" title="Permanent link">&para;</a></h1>
<p>二叉树 binary tree是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。</p>
<p><u>二叉树binary tree</u>是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。</p>
<div class="tabbed-set tabbed-alternate" data-tabs="1:14"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><input id="__tabbed_1_9" name="__tabbed_1" type="radio" /><input id="__tabbed_1_10" name="__tabbed_1" type="radio" /><input id="__tabbed_1_11" name="__tabbed_1" type="radio" /><input id="__tabbed_1_12" name="__tabbed_1" type="radio" /><input id="__tabbed_1_13" name="__tabbed_1" type="radio" /><input id="__tabbed_1_14" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python</label><label for="__tabbed_1_2">C++</label><label for="__tabbed_1_3">Java</label><label for="__tabbed_1_4">C#</label><label for="__tabbed_1_5">Go</label><label for="__tabbed_1_6">Swift</label><label for="__tabbed_1_7">JS</label><label for="__tabbed_1_8">TS</label><label for="__tabbed_1_9">Dart</label><label for="__tabbed_1_10">Rust</label><label for="__tabbed_1_11">C</label><label for="__tabbed_1_12">Kotlin</label><label for="__tabbed_1_13">Ruby</label><label for="__tabbed_1_14">Zig</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
@@ -3942,7 +3999,7 @@
</div>
</div>
</div>
<p>每个节点都有两个引用(指针),分别指向左子节点 left-child node」和「右子节点 right-child node,该节点被称为这两个子节点的父节点 parent node。当给定一个二叉树的节点时,我们将该节点的左子节点及其以下节点形成的树称为该节点的左子树 left subtree」,同理可得「右子树 right subtree</p>
<p>每个节点都有两个引用(指针),分别指向<u>左子节点left-child node</u><u>右子节点right-child node</u>,该节点被称为这两个子节点的<u>父节点parent node</u>。当给定一个二叉树的节点时,我们将该节点的左子节点及其以下节点形成的树称为该节点的<u>左子树left subtree</u>,同理可得<u>右子树right subtree</u></p>
<p><strong>在二叉树中,除叶节点外,其他所有节点都包含子节点和非空子树</strong>。如图 7-1 所示,如果将“节点 2”视为父节点则其左子节点和右子节点分别是“节点 4”和“节点 5”左子树是“节点 4 及其以下节点形成的树”,右子树是“节点 5 及其以下节点形成的树”。</p>
<p><a class="glightbox" href="../binary_tree.assets/binary_tree_definition.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="父节点、子节点、子树" class="animation-figure" src="../binary_tree.assets/binary_tree_definition.png" /></a></p>
<p align="center"> 图 7-1 &nbsp; 父节点、子节点、子树 </p>
@@ -3950,14 +4007,14 @@
<h2 id="711">7.1.1 &nbsp; 二叉树常见术语<a class="headerlink" href="#711" title="Permanent link">&para;</a></h2>
<p>二叉树的常用术语如图 7-2 所示。</p>
<ul>
<li>根节点 root node:位于二叉树顶层的节点,没有父节点。</li>
<li>叶节点 leaf node:没有子节点的节点,其两个指针均指向 <code>None</code></li>
<li>「边 edge」:连接两个节点的线段,即节点引用(指针)。</li>
<li>节点所在的「层 level」:从顶至底递增,根节点所在层为 1 。</li>
<li>节点的「度 degree」:节点的子节点的数量。在二叉树中,度的取值范围是 0、1、2 。</li>
<li>二叉树的高度 height:从根节点到最远叶节点所经过的边的数量。</li>
<li>节点的深度 depth:从根节点到该节点所经过的边的数量。</li>
<li>节点的高度 height:从距离该节点最远的叶节点到该节点所经过的边的数量。</li>
<li><u>根节点root node</u>:位于二叉树顶层的节点,没有父节点。</li>
<li><u>叶节点leaf node</u>:没有子节点的节点,其两个指针均指向 <code>None</code></li>
<li><u>edge</u>:连接两个节点的线段,即节点引用(指针)。</li>
<li>节点所在的<u>level</u>:从顶至底递增,根节点所在层为 1 。</li>
<li>节点的<u>degree</u>:节点的子节点的数量。在二叉树中,度的取值范围是 0、1、2 。</li>
<li>二叉树的<u>高度height</u>:从根节点到最远叶节点所经过的边的数量。</li>
<li>节点的<u>深度depth</u>:从根节点到该节点所经过的边的数量。</li>
<li>节点的<u>高度height</u>:从距离该节点最远的叶节点到该节点所经过的边的数量。</li>
</ul>
<p><a class="glightbox" href="../binary_tree.assets/binary_tree_terminology.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="二叉树的常用术语" class="animation-figure" src="../binary_tree.assets/binary_tree_terminology.png" /></a></p>
<p align="center"> 图 7-2 &nbsp; 二叉树的常用术语 </p>
@@ -4306,26 +4363,26 @@
</div>
<h2 id="713">7.1.3 &nbsp; 常见二叉树类型<a class="headerlink" href="#713" title="Permanent link">&para;</a></h2>
<h3 id="1_1">1. &nbsp; 完美二叉树<a class="headerlink" href="#1_1" title="Permanent link">&para;</a></h3>
<p>如图 7-4 所示,完美二叉树 perfect binary tree所有层的节点都被完全填满。在完美二叉树中,叶节点的度为 <span class="arithmatex">\(0\)</span> ,其余所有节点的度都为 <span class="arithmatex">\(2\)</span> ;若树的高度为 <span class="arithmatex">\(h\)</span> ,则节点总数为 <span class="arithmatex">\(2^{h+1} - 1\)</span> ,呈现标准的指数级关系,反映了自然界中常见的细胞分裂现象。</p>
<p>如图 7-4 所示,<u>完美二叉树perfect binary tree</u>所有层的节点都被完全填满。在完美二叉树中,叶节点的度为 <span class="arithmatex">\(0\)</span> ,其余所有节点的度都为 <span class="arithmatex">\(2\)</span> ;若树的高度为 <span class="arithmatex">\(h\)</span> ,则节点总数为 <span class="arithmatex">\(2^{h+1} - 1\)</span> ,呈现标准的指数级关系,反映了自然界中常见的细胞分裂现象。</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>请注意,在中文社区中,完美二叉树常被称为「满二叉树」</p>
<p>请注意,在中文社区中,完美二叉树常被称为<u>满二叉树</u></p>
</div>
<p><a class="glightbox" href="../binary_tree.assets/perfect_binary_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="完美二叉树" class="animation-figure" src="../binary_tree.assets/perfect_binary_tree.png" /></a></p>
<p align="center"> 图 7-4 &nbsp; 完美二叉树 </p>
<h3 id="2_1">2. &nbsp; 完全二叉树<a class="headerlink" href="#2_1" title="Permanent link">&para;</a></h3>
<p>如图 7-5 所示,完全二叉树 complete binary tree只有最底层的节点未被填满,且最底层节点尽量靠左填充。</p>
<p>如图 7-5 所示,<u>完全二叉树complete binary tree</u>只有最底层的节点未被填满,且最底层节点尽量靠左填充。</p>
<p><a class="glightbox" href="../binary_tree.assets/complete_binary_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="完全二叉树" class="animation-figure" src="../binary_tree.assets/complete_binary_tree.png" /></a></p>
<p align="center"> 图 7-5 &nbsp; 完全二叉树 </p>
<h3 id="3">3. &nbsp; 完满二叉树<a class="headerlink" href="#3" title="Permanent link">&para;</a></h3>
<p>如图 7-6 所示,完满二叉树 full binary tree除了叶节点之外,其余所有节点都有两个子节点。</p>
<p>如图 7-6 所示,<u>完满二叉树full binary tree</u>除了叶节点之外,其余所有节点都有两个子节点。</p>
<p><a class="glightbox" href="../binary_tree.assets/full_binary_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="完满二叉树" class="animation-figure" src="../binary_tree.assets/full_binary_tree.png" /></a></p>
<p align="center"> 图 7-6 &nbsp; 完满二叉树 </p>
<h3 id="4">4. &nbsp; 平衡二叉树<a class="headerlink" href="#4" title="Permanent link">&para;</a></h3>
<p>如图 7-7 所示,平衡二叉树 balanced binary tree中任意节点的左子树和右子树的高度之差的绝对值不超过 1 。</p>
<p>如图 7-7 所示,<u>平衡二叉树balanced binary tree</u>中任意节点的左子树和右子树的高度之差的绝对值不超过 1 。</p>
<p><a class="glightbox" href="../binary_tree.assets/balanced_binary_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="平衡二叉树" class="animation-figure" src="../binary_tree.assets/balanced_binary_tree.png" /></a></p>
<p align="center"> 图 7-7 &nbsp; 平衡二叉树 </p>
@@ -4561,7 +4618,7 @@ aria-label="页脚"
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2022-2024 krahets</br>The website content is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
Copyright &copy; 2022-2024 krahets<br>The website content is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
</div>