Skip to content

Commit 1e83cb0

Browse files
committed
Deployed ff3cd19 with MkDocs version: 0.17.3
1 parent 5c95de6 commit 1e83cb0

File tree

4 files changed

+14
-13
lines changed

4 files changed

+14
-13
lines changed

17_二叉查找树/binary_search_tree/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ <h4 id="_6">删除有两个孩子的内部节点</h4>
396396
<ul>
397397
<li>找到待删除节点 N(12) 的后继节点 S(23)</li>
398398
<li>复制节点 S 到节点 N</li>
399-
<li>删除节点 S</li>
399+
<li>从 N 的右子树中删除节点 S,并更新其删除后继节点后的右子树</li>
400400
</ul>
401401
<p>说白了就是找到后继并且替换,这里之所以能保证这种方法是正确的,你会发现替换后依旧是保持了 BST 的性质。
402402
有个问题是如何找到后继节点呢?待删除节点的右子树的最小的节点不就是后继嘛,上边我们已经实现了找到最小 key 的方法了。</p>
@@ -420,9 +420,9 @@ <h4 id="_6">删除有两个孩子的内部节点</h4>
420420
return subtree.left # 返回它的孩子并让它的父亲指过去
421421
else:
422422
return subtree.right
423-
else: # 俩孩子,寻找后继节点替换
423+
else: # 俩孩子,寻找后继节点替换,并从待删节点的右子树中删除后继节点
424424
successor_node = self._bst_min_node(subtree.right)
425-
subtree.key, subtree.value = successor_node.key, subtree.value
425+
subtree.key, subtree.value = successor_node.key, successor_node.value
426426
subtree.right = self._bst_remove(subtree.right, successor_node.key)
427427
return subtree
428428

17_二叉查找树/bst.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def _bst_remove(self, subtree, key):
106106
return subtree.right
107107
else: # 俩孩子,寻找后继节点替换
108108
successor_node = self._bst_min_node(subtree.right)
109-
subtree.key, subtree.value = successor_node.key, subtree.value
109+
subtree.key, subtree.value = successor_node.key, successor_node.value
110110
subtree.right = self._bst_remove(subtree.right, successor_node.key)
111111
return subtree
112112

index.html

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,15 +398,15 @@ <h2 id="_16">课程目标</h2>
398398
<p>掌握基本的算法和数据结构原理,能独立使用 Python 语言实现,能在日常开发中灵活选用数据结构。
399399
对于找工作的同学提升面试成功率。</p>
400400
<h2 id="_17">工具</h2>
401-
<p>推荐使用以下工具进行开发,如果使用编辑器最好装对 应 Python 插件:</p>
401+
<p>推荐使用以下工具进行开发,如果使用编辑器最好装对 应 Python 插件,笔者视频演示中使用了 vim,读者可以自己挑选自己喜欢的开发工具</p>
402402
<ul>
403403
<li>Pycharm</li>
404404
<li>Sublime</li>
405405
<li>Atom</li>
406406
<li>Vscode</li>
407407
<li>Vim/Emacs</li>
408408
</ul>
409-
<p>代码中使用到了 pytest 测试框架和 when-changed 文件变动监控工具(方便我们修改完代码后自动执行测试),你需要用 pip 安装</p>
409+
<p>代码中使用到了 pytest 测试框架和 when-changed 文件变动监控工具(方便我们修改完代码保存后自动执行测试),你需要用 pip 安装</p>
410410
<pre><code class="py">pip install pytest
411411
pip install when-changed
412412
</code></pre>
@@ -415,7 +415,8 @@ <h2 id="_18">勘误</h2>
415415
<p>输出其实也是一种再学习的过程,中途需要查看大量资料、编写讲义、视频录制、代码编写等,难免有疏漏甚至错误之处。
416416
有出版社找过笔者想让我出书,一来自己对出书兴趣不大,另外感觉书籍相对视频不够直观,有错误也不能及时修改,打算直接把所有
417417
文字内容讲义和代码等放到 github 上,供大家免费查阅。</p>
418-
<p>如果你发现文字内容、代码内容或者视频内容有错误,欢迎在 github 上提 issue 讨论,或者直接提 Merge Request,我会修正相关内容,防止对读者产生误导(同时非常感谢认真学习并及时发现书中错误的同学)。</p>
418+
<p>如果你发现文字内容、代码内容、视频内容有错误或者有疑问,欢迎在 github 上提 issue 讨论,或者直接提 Merge Request,我会修正相关内容,防止对读者产生误导。
419+
同时非常感谢认真学习并及时发现书中错误的同学,非常欢迎针对知识本身的交流和讨论,任何建议和修正我都会认真求证。</p>
419420
<h2 id="_19">本电子书制作和写作方式</h2>
420421
<p>使用 mkdocs 和 markdown 构建,使用 Python-Markdown-Math 完成数学公式。
421422
markdown 语法参考:http://xianbai.me/learn-md/article/about/readme.html</p>
@@ -488,5 +489,5 @@ <h2 id="_19">本电子书制作和写作方式</h2>
488489

489490
<!--
490491
MkDocs version : 0.17.3
491-
Build Date UTC : 2018-06-10 08:19:34
492+
Build Date UTC : 2018-06-10 09:36:02
492493
-->

0 commit comments

Comments
 (0)