This commit is contained in:
krahets
2023-09-27 13:47:05 +08:00
parent 703378cd91
commit f28fb3ea72
114 changed files with 7672 additions and 4067 deletions

View File

@@ -22,7 +22,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.4.1">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.4.2">
@@ -30,7 +30,7 @@
<link rel="stylesheet" href="../../assets/stylesheets/main.72749a73.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/main.d451bc0e.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.a5377069.min.css">
@@ -286,6 +286,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -293,7 +295,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
@@ -311,7 +312,8 @@
</a>
<label class="md-nav__link " for="__nav_1">
<label class="md-nav__link " for="__nav_1" id="__nav_1_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -411,6 +413,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -418,7 +422,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
@@ -436,7 +439,8 @@
</a>
<label class="md-nav__link " for="__nav_2">
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -540,6 +544,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -547,7 +553,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
@@ -565,7 +570,8 @@
</a>
<label class="md-nav__link " for="__nav_3">
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -717,6 +723,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -724,7 +732,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
@@ -742,7 +749,8 @@
</a>
<label class="md-nav__link " for="__nav_4">
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -884,6 +892,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -891,7 +901,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
@@ -909,7 +918,8 @@
</a>
<label class="md-nav__link " for="__nav_5">
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -1031,6 +1041,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -1038,7 +1050,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
@@ -1056,7 +1067,8 @@
</a>
<label class="md-nav__link " for="__nav_6">
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -1178,6 +1190,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -1185,7 +1199,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
@@ -1203,7 +1216,8 @@
</a>
<label class="md-nav__link " for="__nav_7">
<label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -1331,6 +1345,8 @@
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
@@ -1338,7 +1354,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked>
@@ -1356,7 +1371,8 @@
</a>
<label class="md-nav__link " for="__nav_8">
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -1640,6 +1656,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -1647,7 +1665,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
@@ -1665,7 +1682,8 @@
</a>
<label class="md-nav__link " for="__nav_9">
<label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -1787,6 +1805,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -1794,7 +1814,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
@@ -1812,7 +1831,8 @@
</a>
<label class="md-nav__link " for="__nav_10">
<label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -1938,6 +1958,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -1945,7 +1967,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
@@ -1963,7 +1984,8 @@
</a>
<label class="md-nav__link " for="__nav_11">
<label class="md-nav__link " for="__nav_11" id="__nav_11_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -2139,6 +2161,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -2146,7 +2170,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
@@ -2164,7 +2187,8 @@
</a>
<label class="md-nav__link " for="__nav_12">
<label class="md-nav__link " for="__nav_12" id="__nav_12_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -2428,6 +2452,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -2435,7 +2461,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
@@ -2453,7 +2478,8 @@
</a>
<label class="md-nav__link " for="__nav_13">
<label class="md-nav__link " for="__nav_13" id="__nav_13_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -2597,6 +2623,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -2604,7 +2632,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
@@ -2622,7 +2649,8 @@
</a>
<label class="md-nav__link " for="__nav_14">
<label class="md-nav__link " for="__nav_14" id="__nav_14_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -2770,6 +2798,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -2777,7 +2807,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
@@ -2795,7 +2824,8 @@
</a>
<label class="md-nav__link " for="__nav_15">
<label class="md-nav__link " for="__nav_15" id="__nav_15_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -2979,6 +3009,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -2986,7 +3018,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
@@ -3004,7 +3035,8 @@
</a>
<label class="md-nav__link " for="__nav_16">
<label class="md-nav__link " for="__nav_16" id="__nav_16_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -3142,6 +3174,8 @@
<li class="md-nav__item md-nav__item--nested">
@@ -3149,7 +3183,6 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
@@ -3167,7 +3200,8 @@
</a>
<label class="md-nav__link " for="__nav_17">
<label class="md-nav__link " for="__nav_17" id="__nav_17_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
@@ -3243,12 +3277,13 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
@@ -3894,7 +3929,7 @@
</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>「完美二叉树 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>「完美二叉树 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>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>请注意,在中文社区中,完美二叉树常被称为「满二叉树」。</p>
@@ -3918,7 +3953,7 @@
<p align="center"> 图 7-7 &nbsp; 平衡二叉树 </p>
<h2 id="714">7.1.4 &nbsp; 二叉树的退化<a class="headerlink" href="#714" title="Permanent link">&para;</a></h2>
<p>当二叉树的每层节点都被填满时,达到“完美二叉树”;而当所有节点都偏向一侧时,二叉树退化为“链表”。</p>
<p>图 7-8 展示了二叉树的理想与退化状态。当二叉树的每层节点都被填满时,达到“完美二叉树”;而当所有节点都偏向一侧时,二叉树退化为“链表”。</p>
<ul>
<li>完美二叉树是理想情况,可以充分发挥二叉树“分治”的优势。</li>
<li>链表则是另一个极端,各项操作都变为线性操作,时间复杂度退化至 <span class="arithmatex">\(O(n)\)</span></li>
@@ -4187,7 +4222,7 @@ aria-label="页脚"
<script id="__config" type="application/json">{"base": "../..", "features": ["content.action.edit", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "navigation.indexes", "navigation.instant", "navigation.top", "navigation.footer", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../../assets/javascripts/workers/search.a264c092.min.js", "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}}</script>
<script src="../../assets/javascripts/bundle.4e0fa4ba.min.js"></script>
<script src="../../assets/javascripts/bundle.726fbb30.min.js"></script>
<script src="../../javascripts/mathjax.js"></script>